1. A method which may be used by a software developer to wrap a thread-safe data collection with blocking-bounding semantics, the method comprising the steps of: obtaining a membership interface, namely, obtaining at least one procedure heading for invoking a membership interface procedure to perform a thread-safe operation to change the number of data elements in a data collection, the data collection having an organizational structure which is unspecified in the procedure heading; associating a membership implementation with the membership interface, namely, associating at least one procedure body which implements a thread-safe operation to change the number of data elements in the data collection, the organizational structure of the data collection being specific in the membership implementation; and wrapping the membership interface and the membership implementation in a blocking-bounding wrapper, namely, a wrapper which performs at least one of the following in response to an invocation of a membership interface procedure: a blocking operation which is performed on an attempt to remove a data element from the data collection when the data collection lacks a data element available for removal, a bounding operation which is performed on an attempt to add a data element to the data collection when a resource needed to add the data element is lacking.