经典进程的同步问题

生产者—消费者问题:

有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有N个缓冲区的缓冲池,生产者进程将它放入缓冲区中;消费者进程可从一个缓冲区中取走产品去消费。尽管所有的生产者进程和消费者进程都是以异步的方式运行的,但是他们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取走产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。

写者—读者问题:

一个数据文件或记录可被多个进程共享,我们把只要求读该文件的进程称为Reader进程,其他进程成为Writer进程。允许多个进程同时读一个共享对象,因为读操作不会使数据文件混乱。但不允许一个Writer进程和其他Reader进程或Writer进程同时访问共享对象。因为这种访问会引起混乱。

所谓写者—读者问题是指保证一个Writer进程必须与其他进程互斥地访问共享对象的同步问题。

posted @ 2010-02-20 14:02  Margin22  阅读(505)  评论(0编辑  收藏  举报