文件名称:生产者消费者问题C/C++源程序
文件大小:4KB
文件格式:CPP
更新时间:2011-11-11 10:39:27
生产者消费者 操作系统 OS C/C++
程序是在vc++2005上运行通过的,在vc6上运行有问题,不过只需要修改输出部分,应该还是可以的。 此外,在vc2005上运行时,由于WaitForMultiObjects函数只能等待64个线程,因此,只要生产者和消费者总数不超过64个就没问题,实际上,即使超过64个线程,通过修改WaitForMultiObjects函数等待对象个数为64,也是可以运行的。我测试了很多次,包括极端的情况(比如1000个生产者1个消费者或者相反的情形),没有问题。 如果需要帮助,可以和我联系。 操作系统中典型的同步问题,m个生产者,n个消费者链接在具有k个单位缓冲区的有界环形缓冲区上,生产者和消费者是并发线程,只要缓冲区未满,生产者线程就可以生产一件产品放入其中,只要缓冲区不空,消费者就可以从中取出一件产品消费。