package demo;
import java.util.Random;
public class Demo3{
public static void main(String[] args) {
Thread1 tr1=new Thread1();
Thread2 tr2=new Thread2();
tr1.start();
Thread tr=new Thread(tr2);
tr.start();
}
}
class Thread1 extends Thread{
String str="ABCDEFGHIGKLMNOPQRSTUVWXYZ";
Random ra=new Random();
public void run() {
for(int i=0;i<3;i++) {
int j=ra.nextInt(26);
System.out.println(str.charAt(j));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Thread2 implements Runnable{
Random ra=new Random();
public void run() {
for(int i=0;i<3;i++) {
int j=ra.nextInt(26);
System.out.println(j);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ca4e6bb010c3d2cba59e9bda1565682b.png)
我们可以看到运行了三个线程,结果却只有6条。
这是因为Thread tr=new Thread(tr2);传入了tr2参数,那么tr2和tr共同使用一个线程(run()方法)。