Java线程怎么恢复_在java中恢复线程

这就是我想要完成的!

步骤1)启动th1并转到其runnable

步骤2)在th1的runnable内启动th2

步骤3)在runnable的中间,加入th2并转到th2的runnable

步骤4)在th2的runnable中间,加入th1并返回到我在th1 runnable中剩下的位置

步骤5)在完成run1之后,返回th2 runnable到达我离开的地方并完成th2 runnable

步骤6)程序结束

第4步和第5步是我的问题 . 我无法正确执行它们 .

public class Threads2 {

class alphabet1 implements Runnable {

@Override

public void run() {

alphabet2 alpha2= new alphabet2();

Thread th2 = new Thread(alpha2);

System.out.println("A");

System.out.println("B");

System.out.println("C");

System.out.println("D");

th2.start();

try {

th2.join();

}catch (InterruptedException e) {

}catch (IllegalMonitorStateException e1){

System.out.println("Thread interrupted!");

}

System.out.println("G");

System.out.println("H");

}

}

class alphabet2 implements Runnable {

@Override

public void run() {

alphabet alpha= new alphabet();

Thread th1 = new Thread(alpha);

System.out.println("E");

System.out.println("F");

try {

th1.join();

}catch (InterruptedException e){

}catch (IllegalMonitorStateException e1){

System.out.println("Thread interrupted!");

}

System.out.println("I");

}

}

public static void main(String[] args){

Threads2 obj = new Threads2();

alphabet1 alpha = obj.new alphabet1();

Thread th1 = new Thread(alpha);

th1.start();

}

}

输出:A B C D E F I G H.

“我”应该是输出中的最后一个 . 我知道为什么它以不正确的顺序显示,但是,我无法弄清楚如何以正确的顺序显示它?我一起使用了notify()和wait() . 如果我在“alphabet2”中键入“th1.start()”,则在“alphabet”类之后将重新打印“A” . 我也试过“interrupt()”和“sleep()” . 我理解我的代码有缺陷,我只是以代码为例 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值