使用缓中区存储整数, 缓冲区的大小受限的。缓冲区提供write(int)方法将一 个int值添加到缓冲区中, 还提供方法read0从缓冲区中读取和删除-一个int值。实现铜步操作,需要使用具有两个条件的锁: notEmpty (即缓冲区非空)和notFull (即缓冲区末满)。当任务向缓冲区添加一个int时,如果缓冲区是满的,那么任务将会等待notFull状态。当任务从缓冲区中删除个int时, 如果缓中区是空的,那么任务将等待notEmpty状态。
https://www.runoob.com/java/thread-procon.html