java 多线程死循环怎么动态传参?急!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多线程死循环怎么动态传参?急!相关的知识,希望对你有一定的参考价值。

现在有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的死循环里操作这些属性.追问

能详细点吗。没太听懂,大神!

追答

按照上面说的一步一步做就行了,心没有静下来.
核心就是在线程类里面加属性来存另一个线程,创建线程2的时候,把线程1设置到线程2的这个属性里,这样在线程2里就可以取到线程1以及线程1的属性了.

参考技术A 在thread2的类里定义个成员变量,把thread1的参数赋值给成员变量追问

试过的,不行,2个线程是2个死循环,都是while(true) 的 而且thread2只启动一次,传进的参数是无效的,参数值永远是第一次启动thread2的时候的初始参数值

参考技术B 建立同步变量,通过变量传递。追问

试过的,不行,2个线程是2个死循环,都是while(true) 的 而且thread2只启动一次,传进的参数是无效的,参数值永远是第一次启动thread2的时候的初始参数值

以上是关于java 多线程死循环怎么动态传参?急!的主要内容,如果未能解决你的问题,请参考以下文章

Java怎么写死循环能让CPU多核心全部跑满。

多线程下HashMap的死循环问题

多线程下HashMap的死循环问题

多线程的异步死循环和volatile关键字

多线程环境下,HashMap 为什么会出现死循环?

多线程环境下,HashMap为什么会出现死循环?