资源简介
本课程设计的目的是通过设计一个消费者进程与生产者进程的同步模拟系统,认识进程间的同步机制生产者消费者问题是一个著名的进程同步问题。
(1) 有一群生产者进程在生产消息, 并将消息提供给消费者进程去消费。为使生产者进程和消费者进程能并发执行, 在它们之间设置了一个具有n个缓冲区的缓冲池, 生产者进程可将它所生产的消息放入一个缓冲区中, 消费者进程可从一个缓冲区中取得一个消息消费。
(2) 尽管所有的生产者进程和消费者进程都以异步方式运行, 但它们之间必须保持同步, 即不允许消费进程者到一个空缓冲区去取消息, 也不允许生产者进程向一个已装有消息且尚未被取走消息的缓冲区中投放消息。
(3) 任何时刻只能有一个进程可对共享缓冲区进行操作
这是一个用Eclipse为工具、java为编程语言而实现模拟消费者进程与生产者进程的同步。
代码片段和文件信息
package 生产者消费者;
public class Cousumer extends Thread {
private Share shared;
public String value = null;
public Cousumer(Share shared) {
this.shared = shared;
}
public String getProduct() {
String p = shared.get();
return p;
}
public void run() {
while(true){
value = this.getProduct();
if(!value.equals(null))
PCmx.l4.setText(“消费者“ + “拿到的生产数据为:“ + value);
try {
sleep(3000);
} catch (InterruptedException e) {
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 183808 2010-07-11 21:55 200707034 07计本1班 郑晨.doc
文件 1216 2010-07-11 08:30 bin\生产者消费者\Cousumer.class
文件 1613 2010-07-11 09:34 bin\生产者消费者\denglu$1.class
文件 1106 2010-07-11 09:34 bin\生产者消费者\denglu$2.class
文件 3616 2010-07-11 09:34 bin\生产者消费者\denglu.class
文件 3343 2010-07-11 09:41 bin\生产者消费者\PCmx.class
文件 1008 2010-07-11 09:09 bin\生产者消费者\Producer.class
文件 1439 2010-07-11 08:30 bin\生产者消费者\Share.class
文件 8 2010-07-08 10:08 log\Logfile.1
文件 229 2010-07-08 10:08 log\Snapshot.1
文件 4 2010-07-08 10:08 log\Version_Number
文件 516 2010-07-07 09:00 src\生产者消费者\Cousumer.java
文件 4644 2010-07-11 09:34 src\生产者消费者\denglu.java
文件 1981 2010-07-11 09:41 src\生产者消费者\PCmx.java
文件 315 2010-07-11 09:09 src\生产者消费者\Producer.java
文件 750 2010-07-07 08:58 src\生产者消费者\Share.java
目录 0 2011-07-02 21:53 bin\生产者消费者
目录 0 2011-07-02 21:53 src\生产者消费者
目录 0 2011-07-02 21:53 bin
目录 0 2011-07-02 21:53 log
目录 0 2011-07-02 21:53 src
----------- --------- ---------- ----- ----
205596 21
评论
共有 条评论