public class Threadeg {
public static void main(String arg[]) {
Thread t1 = new myThread1();
t1.start();
}
}class myThread1 extends Thread {
public void run() {
Thread t2 = new myThread2();
for (int i = 0; i < 10; i++) {
if (i == 3) {
t2.start();
try {
Thread.sleep(0);
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(i + ",");
}
}
}class myThread2 extends Thread {
public void run() {
for (int i = 100; i < 110; i++) {
System.out.println(i + ",");
}
}
}
public static void main(String arg[]) {
Thread t1 = new myThread1();
t1.start();
}
}class myThread1 extends Thread {
public void run() {
Thread t2 = new myThread2();
for (int i = 0; i < 10; i++) {
if (i == 3) {
t2.start();
try {
Thread.sleep(0);
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(i + ",");
}
}
}class myThread2 extends Thread {
public void run() {
for (int i = 100; i < 110; i++) {
System.out.println(i + ",");
}
}
}
public static void main(String arg[]) {
Thread t1 = new myThread1();
t1.start();
}
}class myThread1 extends Thread {
public void run() {
Thread t2 = new myThread2();
for (int i = 0; i < 10; i++) {
if (i == 3) {
t2.start();
}
System.out.println(i + ",");
try {
Thread.sleep(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}class myThread2 extends Thread {
public void run() {
for (int i = 100; i < 110; i++) {
System.out.println(i + ",");
try {
Thread.sleep(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
用sleep()倒是也可以,在i==3时sleep一定的时间,这个时间内第二个线程可以执行完毕,不过这样只是一个投机的做法有更好的方法吗
不好意思开始没说清楚。
等到线程2执行完毕的时候调用notifyAll()方法唤醒线程一继续执行