问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java多线程的案例,给我学习一下,谢谢!

发布网友 发布时间:2022-05-27 03:24

我来回答

2个回答

热心网友 时间:2023-10-03 01:53

public class Consumer extends Thread{
private SharedData sd;
private char c;

public Consumer(SharedData sd) {
this.sd = sd;
}

public void run() {
do {
c = sd.consumer();
try {
Thread.sleep((long)Math.random()*3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} while (c != 'D');
}
}

public class Proctor extends Thread{
private SharedData sd;

public Proctor(SharedData sd) {
this.sd = sd;
}

public void run() {
for (char c='A';c<='D';c++) {
sd.proct(c);
try {
Thread.sleep((long)Math.random()*3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

public class SharedData {
private char c; //当前正在生产或消费的产品
private boolean isProcted = false;//是否已经生产

//生产产品
public synchronized void proct(char c) {
if (isProcted) {
//已经生产,等待消费
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.c = c;
System.out.println("生产产品" + c);
this.isProcted = true;//已经生产
notify(); //通知消费者
}

//消费产品
public synchronized char consumer() {
if (!isProcted) { //未生产,则等待生产产品
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("消费产品" + c);
isProcted = false;
notify();
return this.c;
}
}
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
SharedData sd = new SharedData();
Proctor p = new Proctor(sd);
Consumer c = new Consumer(sd);

c.start();
p.start();
}

}

热心网友 时间:2023-10-03 01:53

我觉得技视网就很不错,在IT这一块做得很纯粹,网站根据不同的IT领域划分了不同的关键词进行搜索学习,而且都是免费的在线视频,你感兴趣可以去看看,反正我经常去那里学习,希望对你有帮助!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 英语版的词典,在牛津袖珍版,牛津实用版和朗文中阶里,那本比较不错? 牛津袖珍英汉双解词典 有近义词吗比较吗 java多线程的例子谁有,共享下。 JAVA简单多线程例子 十个手指头上没有一个月牙,是不健康的吗? 请问这两本英汉词典哪本好些?谢谢 牛津英汉双解小词典和牛津袖珍英汉双解词典 我今年25岁,我的手指原来只有两个大拇指有月牙,现在十个手指都没有月牙了 DVR录像机密码忘记了怎么办? 我的十个手指指甲根部都没有月牙 网络录像机登录密码忘记了怎么办 我现在是个高中生,需要一本英语词典能方便,快速的查询单词!《牛津英汉双解小词典》和《牛津袖珍英汉》 听说手指上的月牙代表健康,我现在10个手指都没月牙了。 想知道如何才能恢复? Java多线程代码,求注释,越详尽越好!有点急,谢谢! 举一个java中多线程例子的代码 为什么我十个手指头,没有一个有月牙 十个手指都没有月牙,指甲上都是竖纹,好多年了,前些时间喝粥,稍微有些月牙最近又没有了。 三星Srd-1651硬盘录像机忘记密码怎么办 我50岁了,十个手指无月牙了,是什么意思? 我的手上十个手指一直都没有白月牙是怎么回事,并且我... 求恐怖游戏! &quot;袖珍&quot;的来历 我的java多线程死锁例子为什么没写对? 大牛写个java多线程的取款实例啊,要用到同步可和锁??? 笔记本电脑不能开机!但是拆下电池之后单独接电源能开机正常使用.请问这是为什么? 笔记本电脑开机没有反应,取掉电池才能开机,请问是怎么回事? 笔记本电脑拆了电池后再装进去,插上电源可以开机,但是电池充不了电。 笔记本电脑电池装上开不了机,卸下来就能开机怎么回事 联想笔记本电脑开不开机 只有拆电池再按就可以这是为什么 解冻不了,人脸识别不通过怎么办? 笔记本电脑突然关机开不了机了,但是拿掉电池再插上就能开机了,是怎么回事? 我笔记本电脑上了电池就开不开机,取下电池就能开,是怎么回事? 联想笔记本电脑主机正常,显示屏不显示!黑屏!但每次拆了电池!按几下开机键又可以了!什么原因! 笔记本电脑插着电源却是电池供电 拆下电池能开机 该怎么办~!! 未曾人脸识别过被冻结怎么解冻? 解冻不了,人脸识别不通过怎么办? 水晶板有一股味道,水晶板的味道含甲醛吗? 水晶板(软玻璃)的成分是什么?为什么有的有味道,有的没味道呢? 如何辨别水晶板 水晶板怎么区分好坏 龙之谷哪些职业比较适合平民玩