多线程的问题请教

问题描述

packagecom.http;publicclasstest2{publicstaticvoidmain(String[]args)throwsInterruptedException{modem=newmode();shengs=newsheng(m);xiaox=newxiao(m);Threadt1=newThread(s);Threadt2=newThread(s);Threadt5=newThread(s);Threadt3=newThread(x);Threadt4=newThread(x);Threadt6=newThread(x);t1.start();t2.start();t3.start();t4.start();t5.start();t6.start();}}classxiaoimplementsRunnable{privatemodem;publicxiao(modem){this.m=m;}@Overridepublicvoidrun(){while(true){try{m.get();}catch(InterruptedExceptione){e.printStackTrace();}}}}classshengimplementsRunnable{privatemodem;publicsheng(modem){this.m=m;}@Overridepublicvoidrun(){while(true){try{m.set("蛋糕");}catch(InterruptedExceptione){e.printStackTrace();}}}}classmode{privateStringname;privatebooleanflag;publicsynchronizedvoidset(Stringname)throwsInterruptedException{if(flag)//whilewait();if(!flag){//改while时去除this.name=name;System.out.println(Thread.currentThread().getName()+"生产了"+name);flag=true;}notify();//notifyAll();}publicsynchronizedvoidget()throwsInterruptedException{if(!flag)//whilewait();if(flag){//改while时去除System.out.println(Thread.currentThread().getName()+"消费了"+name);flag=false;}notify();//notifyAll();}}

解决方案

本帖最后由 DaoDivDiFang 于 2014-10-15 12:31:35 编辑
解决方案二:
请问这里我不用while(flag)判断标记,也不用notifyAll();唤醒所有进程。就以上的代码有没有问题?解决了多线程的通信问题没有?

时间: 2024-11-02 11:09:41

多线程的问题请教的相关文章

java多线程问题,请教大神,多谢

问题描述 java多线程问题,请教大神,多谢 class Res{ String name; String sex;}class Input implements Runnable{ private Res r;//这句是什么意思?跟Res r = new Res();有什么区别? Input(Res r) { this.r=r; } public void run() { int x = 0; while(true) { if(x==0) { r.name=""mike"&

python-关于selenium多线程问题的请教

问题描述 关于selenium多线程问题的请教 请问,我现在用python和selenium做一个模拟登录然后自动回帖,然后现在登录上去了,可是如果用一个线程一个一个回帖又比较麻烦,请问能够用多线程然后在不同板块一起操作的吗.我看了selenium grid好像他们不能共用cookie的感觉,谢了 解决方案 开多个进程,每个进程带一个selenium

html-HTML页面如何选择性隐藏某段标签

问题描述 HTML页面如何选择性隐藏某段标签 比如HTML页面里某段信息标签 如div 在完成其功能后希望把它隐藏起来,不在网页上显示,怎么做的阿? 解决方案 $("#id").hide();不行么 解决方案二: html 标签隐藏 解决方案三: $("#id").style.display="none" 解决方案四: $("#id").style.display="none" 解决方案五: 做成动态的用j

多线程-请教:关于RandomAccessFile阻塞ScheduledExecutorService的问题

问题描述 请教:关于RandomAccessFile阻塞ScheduledExecutorService的问题 大家好, 我想实现 读一个正在动态增长的日志 的功能,下面第一段代码本够用了,可惜 那个日志还会不定时自动 归档(滚动,也就是 .log 变 *.log1 .log1变 *.log2 ,类推) 已经打开的 RandomAccessFile 仍然盯着最早关联的文件,无法识别关联到新生成的 *.log 所以我修改了这段代码,就是下面第二段代码 新的问题是: 程序已运行到 randomFil

请教多线程操作同一个数据表时,怎么避免表死锁

问题描述 最近有一个数据采集的项目,要求可以多路并发,遇到多线程操作同一个数据表的问题,经常发生表死锁,求各位大侠帮忙,大约有20-40个进程实例化读取类,类中Receive方法接收数据并存储上代码publicclassclsTranslateObj{privatevoidReceive(){intlenReceive=0;byte[]receivedByte=newbyte[BUFFER_SIZE];//接收返回字节数组_rtnStr=string.Empty;while(_flgConnec

关于多线程问题,请教???

问题描述 关于多线程问题,请教??? public class TestSyncTest { public static void main(String[] args) { ??TestSync job = new TestSync(); ??Thread jia = new Thread(job); ? ?Thread yi = new Thread(job); ? ?jia.setName("甲"); ??yi.setName("乙"); ? ?jia.sta

【请教各位朋友、高手、版主】java 图形界面 多线程 运行的原理和本质

问题描述 小弟水平有限,对java图形界面编程一直有比较模糊的困惑感.虽然查阅了一些资料,但是往往是对技术的平白直述,还是无法找到解决困惑的方法,所以请教各位朋友.请详细讲解一下java图形界面程序运行的原理和本质.比如在java内部,一个图形界面程序,是如何开始初始化,最好能具体到几个关键类,它们都完成什么工作.这期间多线程又是如何开展的,有哪些关键性的线程,承担哪些重要作用.要是有些对本质的深入浅出的讲解,那就更好了非常感谢,小弟请教了 解决方案 解决方案二:帮你顶下!看楼下解答......

请教:多线程问题,如何让【子线程】访问【主线程】建立的【控件】?

问题描述 A窗体建立的控件,需要用多线程,同时给各个控件加载数据.(从服务器上下载数据,由于延时问题,希望并行加载数据.)现在只线程出现错误:[线程间操作无效:从不是创建"XXXX"的线程访问它]救解决方法? 解决方案 解决方案二:你没代码,只能猜测你不是按这个文章里面的做法做的解决方案三:一般就写this.Invoke(()=>{//跨线程的代码}); 解决方案四:Dispatcher.Invoke(Sub()'DoSomethingEndSub)参见https://msdn.

请教大神!!C#多线程读同一个文件夹,并文件夹中文件复制出去

问题描述 先介绍我的程序实现的功能:假设现有文件夹A和文件夹B,文件夹A中又存在子文件夹A1.A2.A3,文件夹B中又存在B1.B2.B3.我定时扫描文件夹A,若A1,A2,A3中存在文件(从别处发过来的),则将他们自动对应的摆渡到文件夹B1,B2,B3.分割线现在存在一个问题,如果A从别处发了一个很大的文件到A1文件夹,需要发很长时间,那么我的程序扫描到A1文件夹中有文件,但还在继续往里面写入,就会等待文件写完,再将其摆渡至B1,此时,若A2中也有文件,则会等待A1中的文件摆渡完了才会去执行摆