我在理解这段代码时遇到了问题,我的问题是为什么两个线程在执行方法中的语句时不会相互干扰run
?
我的意思是总是先做所有的陈述然后再来第二个线程做陈述。
第一个线程执行部分语句然后第二个线程执行部分语句然后第一个线程继续其任务是不可能的......
注意:我知道这两个线程使用不同的OutputStream
对象
线程代码在这里
class Printer extends Thread
{
private String ThreadName;
public Printer(String name)
{
this.ThreadName=name;
}
public void run()
{
PrintStream out=new PrintStream(System.out);
out.println(this.ThreadName+" : a");
out.println(this.ThreadName+" : b");
out.println(this.ThreadName+" : c");
out.println(this.ThreadName+" : d");
out.println(this.ThreadName+" : e");
out.println(this.ThreadName+" : f");
out.println(this.ThreadName+" : g");
out.println(this.ThreadName+" : h");
out.println(this.ThreadName+" : i");
out.println(this.ThreadName+" : j");
out.println(this.ThreadName+" : k");
}
}
进入代码:
class Main
{
public static void main(String[] args)
{
Thread t1 = new Printer("thread 1");
Thread t2 = new Printer("thread 2");
t1.start();
t2.start();
}
}
尝试替换System.out
并out
比较结果,然后您将确切知道我要的是什么