import java.io.*;
class Q1c {
public Q1c() {
/*注意此处用的是run,因此会在一个线程结束后再进行下一个线程*/
new Thread1().run();
new Thread2().run();
/*
new Thread1().start();
new Thread2().start();
*/
}
public static void main(String args[]) {
new Q1c();
}
}
class Thread1 extends Thread {
public void run() {
for(int i = 0; i < 10; i++) {
System.out.println("A " + i);
yield();
}
}
}
class Thread2 extends Thread {
public void run() {
for(int i = 0; i < 10; i++) {
System.out.println("B " + i);
yield();
}
}
}
//把start改成run的时候运行的结果是不一样的
//start()方法是启动(即开辟)一个线程的方法,因此线程的启动必须通过此方法,
//而run()方法,只是Thread类的一个方法,它本身并不能开辟线程,当直接用调用它的时候相当于普通方法调用。
所以,当你用run()时候,程序只有一个线程,根本没达到你多线程的目的(是错误的)。而你用start()时候,你的程序又开辟了两个线程.