程序中存在三个类,分别为:Producer,Transit,Consumer ,其中Transit作为容器,且作为Producer和Consumer的成员属性,
先实例化Transit类一个对象tran
然后new Producer和Consumer, pro和con 对象,并以均以tran作为参数传入,分别启动pro和con内的进程(主要为了更贴近实际,譬如:pro为秒钟生产一只烤鸭,而消费者每三秒消费一只烤鸭(可以多个消费者,这里举一个作为样例))进行生产(只负责定时生产并交付给tran对象,若烤鸭数量为0则唤醒等待的线程)和消费(可以任意时候消费,询问tran对象,若有则进行消费,无则进入等待状态(睡眠)),
由于这个事件pro和con之间属于同步,不需要对tran进行互斥访问控制
而消费者之间属于互斥关系,需要对tran的访问进行互斥控制,防止错误
初步想法,有疑问继续交流噢
|