java 多线程死循环怎么动态传参?急!
现在有2个线程,都是while(true){}的死循环嵌套的,我想把thread1的动态参数传到thread2里面去,但是thread2只启动一次(thread2是只st...
现在有2个线程,都是while(true){}的死循环嵌套的, 我想把thread1的动态参数传到thread2里面去,但是thread2只启动一次(thread2是只start()一次的线程,执行死循环), 求大神帮忙!
展开
展开全部
用继承的方式实现Thread类,取名MyThread,在MyThread里面加一个属性 private Thread otherThread;并且给get,set方法.
在run方法里面的死循环中判断,if(otherThread!=null){取你要的参数};
这样一来,在new完thread1和thread2之后,调用thread2.setOtherThread(thread1);
然后再去start.
当然,还要给MyThread加一些属性存放你要传递的参数,在thread1的死循环里操作这些属性.
在run方法里面的死循环中判断,if(otherThread!=null){取你要的参数};
这样一来,在new完thread1和thread2之后,调用thread2.setOtherThread(thread1);
然后再去start.
当然,还要给MyThread加一些属性存放你要传递的参数,在thread1的死循环里操作这些属性.
追问
能详细点吗。没太听懂,大神!
追答
按照上面说的一步一步做就行了,心没有静下来.
核心就是在线程类里面加属性来存另一个线程,创建线程2的时候,把线程1设置到线程2的这个属性里,这样在线程2里就可以取到线程1以及线程1的属性了.
展开全部
在thread2的类里定义个成员变量,把thread1的参数赋值给成员变量
追问
试过的,不行,2个线程是2个死循环,都是while(true){} 的 而且thread2只启动一次,传进的参数是无效的,参数值永远是第一次启动thread2的时候的初始参数值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建立同步变量,通过变量传递。
追问
试过的,不行,2个线程是2个死循环,都是while(true){} 的 而且thread2只启动一次,传进的参数是无效的,参数值永远是第一次启动thread2的时候的初始参数值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询