下面这个例子和上面一样,除了说是子线程要join主线程。本例中还教会了大家,如何从主线程传参数到子线程。
例:1.5.3_2
class ThreadMark_to_win extends Thread {
Thread mainT;
Test t;
public void run() {
try {
mainT.join();
} catch (InterruptedException e) {
System.out.println("我是子程序, 也被打断");
}
System.out.println("完成"+"e 在子线程"+t.e);
}
public void setMainThread(Thread t1, Test tTest) {
mainT=t1;
t=tTest;
}
}
public class Test {
int e;
public static void main(String[] args) {
Test t=new Test();
Thread mainT = Thread.currentThread();
ThreadMark_to_win tm = new ThreadMark_to_win();
tm.setMainThread(mainT,t);
tm.start();
for (int i = 0; i < 10; i++)
{
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
if(i==4) tm.interrupt();
t.e = t.e + i;
}
System.out.println("主线程e = " + t.e);
}
}
更多请见:https://blog.youkuaiyun.com/qq_43650923/article/details/101215957
本文通过一个Java示例展示了子线程如何等待主线程结束,同时介绍了如何从主线程向子线程传递参数。示例代码中,子线程通过调用主线程的join()方法来实现等待,并在主线程中断时做出响应。
1629

被折叠的 条评论
为什么被折叠?



