有人能提供一下简单的Java生产者消费者模型代码吗?
解决方案 »
- java读取outlook导出的pst文件
- 质数问题
- 谈谈自己的失败的项目或者工作中学习中遇到最困难的问题
- 如何利用ESC键,退出对话框
- 有SWING高手吗? 帮我改一下这个JTree 能遍历整个系统的 拜托了
- 关于applet中显示swing的问题
- 小弟才学java,下载的注册机想注册jbx,注册时,输入注册码后,finish按钮总是不可选的,请问如何注册啊?
- javax.swing.JPopupMenu超出屏幕问题?
- (1)socket能不能在applet中运用?(2)应用程序中能不能播放声音?谢谢!
- 怎样把一个double数组写到文本文件里?(在线等待)
- 自定义ClassLoader 与Webservice 的问题
- 这个表格如何用For循环或者别的办法实现
Pool pool = new Pool();
Thread t1 = new ThreadIn(pool);
Thread t2 = new ThreadDe(pool);
t2.start();
t1.start(); }}class ThreadIn extends Thread {
private Pool pool; public ThreadIn(Pool pool) {
this.pool = pool;
} public void run() {
try {
for (int i = 0; i < 10; i++) {
pool.increase();
} } catch (Exception e) { e.printStackTrace();
}
}
}class ThreadDe extends Thread {
private Pool pool; public ThreadDe(Pool pool) {
this.pool = pool;
} public void run() {
try {
for (int i = 0; i < 10; i++) {
pool.decrease();
} } catch (Exception e) { e.printStackTrace();
} }
}class Pool {
private int num = 0; public synchronized void increase() throws Exception { while (num > 0) {
this.wait();
}
num++;
System.out.println("num:" + num);
notify();
} public synchronized void decrease() throws Exception { while (0 == num) {
this.wait();
}
num--;
System.out.println("num:" + num);
notify();
}
}