假设线程A 打印A,线程B打印B,线程C 打印C
现要求按A,B,C顺序循环启动线程,如何实现?-----同步synchronized 解决资料共享问题
==============================================
class MyThread extends Thread{
private String name;
public MyThread(String name){
this.name=name;
}
public void run(){
for(int i=0;i<10;i++){
System.out.println(name+",i="+i);
}
}
}
public class ThreadDemo{
public static void main(String args[]){
MyThread mt1=new MyThread("A");
MyThread mt2=new MyThread("B");
MyThread mt3=new MyThread("C");
mt1.start();
mt2.start();
mt3.start();
}
}
此情况下线程交叉运行
==========================================
依靠Runnable接口实现
class MyThread implements Runnable{
private String name;
public MyThread(String name){
this.name=name;
}
public void run(){//覆写方法
for(int i=0;i<10;i++){
System.out.println(name+",i="+i);
}
}
}
public class ThreadDemo{
public static void main(String args[]){
MyThread mt1=new MyThread("A");//实例化Runnable子类
MyThread mt2=new MyThread("B");
MyThread mt3=new MyThread("C");
Thread t1=new Thread(mt1);//实例化Thread类对象
Thread t2=new Thread(mt2);
Thread t3=new Thread(mt3);
t1.start();
t2.start();
t3.start();
}
}