Java 7 API provides several data structures to work with concurrent applications. From these, we want to highlight the following two data structures:
LinkedTransferQueue: This data structure is supposed to be used in those programs that have a producer/consumer structure. In those applications, you have one or more producers of data and one or more consumers of data and a data structure is shared by all of them. The producers put data in the data structure and the consumers take data from the data structure. If the data structure is empty, the consumers are blocked until they have data to consume. If the data structure is full, the producers are blocked until they have space to put their data.