代码完成不休眠

来源:3-3 sleep方法的使用

Star3327752

2022-04-26 23:29:40

相关代码:

package 第67周;
class PrintRunnable implements Runnable{

	@Override
	public void run() {
		// TODO 自动生成的方法存根
		for(int i=0;i<10;i++)
		System.out.println(Thread.currentThread().getName()+"A");
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	
}
class PrintRunnable2 implements Runnable{

	@Override
	public void run() {
		// TODO 自动生成的方法存根
		for(int i=0;i<10;i++)
		System.out.println(Thread.currentThread().getName()+"B");
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	
}

public class Runnable接口创建线程 {
	
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int i=0;
		PrintRunnable pr =new PrintRunnable();
		Thread t1=new Thread(pr);
		t1.start();
		
		PrintRunnable2 pr2 = new PrintRunnable2();
		Thread t2 = new Thread(pr);
		t2.start();
		

	}

}

问题描述:我的代码两秒钟就进行完了,为啥啊。。

相关代码:

package 第67周;
class PrintRunnable implements Runnable{

	@Override
	public void run() {
		// TODO 自动生成的方法存根
		for(int i=0;i<10;i++)
		System.out.println(Thread.currentThread().getName()+"A");
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	
}

public class Runnable接口创建线程 {
	
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		PrintRunnable pr =new PrintRunnable();
		Thread t1=new Thread(pr);
		t1.start();
		Thread t2 = new Thread(pr);
		t2.start();
		

	}

}

这两种代码都不行

写回答

1回答

好帮手慕小蓝

2022-04-27

同学你好,同学代码中的for循环缺少大括号导致的问题。因为在缺少大括号时,仅for循环后的第一句代码会作为循环体,所以这里只有System.out.println(Thread.currentThread().getName()+"A");是在循环中的,而休眠代码没有在循环中,就会出现这样的问题。

建议同学将for循环的大括号补全,将休眠代码一并包裹起来之后,再尝试一下。

祝学习愉快~


0

0 学习 · 9886 问题

查看课程