schreiben Sie einen Consumer-(producer-) Thread der aus einem (in einen) Puffer Elemente ausliest(stellt).
这道题目用thread编程,但是我一点思路都没有,谁能大概给个java程序? 谢谢!!

schreiben Sie einen Consumer-(producer-) Thread der aus einem (in einen) Puffer Elemente ausliest(stellt).
这道题目用thread编程,但是我一点思路都没有,谁能大概给个java程序? 谢谢!!
此篇文章于 08-10-17 12:25 被 kkundcc 编辑。 原因: 更改内容
这里讲的很清楚
http://www.ismayday.com/?p=133
我没理解错的话,就是随便写个类,有个Stack之类的属性,然后main里new一个Thread不停地读(写)这个Stack
不好意思,题目连接我没看,但是从一楼的帖子看,我觉得无非是这样:
这个程序有两套程序。第一套启动一个server-thread,这个程序里面要包含一个stack形式的属性;这个thread只启动一次,不中断,等待其他的thread来读stack.第二套程序是client-thread,可以启动多次,每次启动都生成一个thread,每个client-thread读server-thread的stack,读完之后,输出,终止这个tread。
谢谢楼上的答复!!
下面是我的代码,因为java被我卸载了,所以无法运行,谁能帮我看看我这个程序编的对吗?
public class ConsumerThread extends Thread{
private BufferReader br;
private boolean running;
public ConsumerThread() {
br = null;
running = true;
}
public void set_running(boolean flag) {
running = flag;
}
public void run() {
while(running)
{
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
num++;
}
}
public static void main(String[] argc)
{
ConsumerThread ct = new ConsumerThread();
ct.start();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
BufferReader b=new BufferReader(new InputStreadReader(System.in));
System.out.println("num="+num);
ct.set_running(false);
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
}
}
请问你把全部的代码都写上去,这肯定不是全部的,光这个部分看不出来的。你好像就定义了子类!下面是我的代码,因为java被我卸载了,所以无法运行,谁能帮我看看我这个程序编的对吗?
public class ConsumerThread extends Thread{
private BufferReader br;
private boolean running;
public ConsumerThread() {
br = null;
running = true;
}
public void set_running(boolean flag) {
running = flag;
}
public void run() {
while(running)
{
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
num++;
}
}
public static void main(String[] argc)
{
ConsumerThread ct = new ConsumerThread();
ct.start();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
BufferReader b=new BufferReader(new InputStreadReader(System.in));
System.out.println("num="+num);
ct.set_running(false);
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
}
}
lz程序有些小错
1.是bufferedReader,不是bufferReader
2. num没定义没赋值
3. InputStreadReader也写错了,应该是InputStreamReader
我给num赋值是0,输出 num=8,不知道是不是你要的结果?程序我没看
此篇文章于 08-10-17 18:30 被 小九 编辑。
Geboren zu dem Zweck, auf den Tod zu warten.
初来乍到的九。
迷迷糊糊的九。
已经不是小孩子的九。
谢谢!非常感谢!!
目前有1位用户正在查看此主题。(0 位会员和 1 游客)


书签