class MyThread extends Thread
{
MyThread(String str)
{
super(str);
} public void run()
{
for(int i=0;i<30;i++)
{
System.out.println(getName());
}
}
public static void main(String arg[])
{
MyThread t1=new MyThread("first");
MyThread t2=new MyThread("second");
t1.start();
t2.start();
}
}
为什么两个线程会交替进行 而不是第一个执行完再执行第二个
{
MyThread(String str)
{
super(str);
} public void run()
{
for(int i=0;i<30;i++)
{
System.out.println(getName());
}
}
public static void main(String arg[])
{
MyThread t1=new MyThread("first");
MyThread t2=new MyThread("second");
t1.start();
t2.start();
}
}
为什么两个线程会交替进行 而不是第一个执行完再执行第二个
synchonized
你上面的代码是不能够只有一个执行的。你需要定义一个static变量.用这个static变量标志来同步.或者你用接口方试来实现这个线程..传入synchonized的参数为同一个实例..
{
public synchronized void run()
}调用时
MyThread my = new MyThread();
new Thread(my).start();
new Thread(my).start();
这样就有两个线程在执行,这样才会一个执行完才执行另一个
{
public synchronized void run()
}调用时
MyThread my = new MyThread();
new Thread(my).start();
new Thread(my).start();
这样就有两个线程在执行,这样才会一个执行完才执行另一个
这样只是说同时一有一个线程在执行,但并不代表一个执行玩,再执行另外一个