好吧,我是 java 新手,在 java 线程中实现同步代码块时遇到问题。
class btstep extends Thread
{
private static final Object lock = new Object();
public void run()
{
synchronized(lock)
{
System.out.println("3 ");
System.out.println("4 ");
}
}
}
class btevent extends Thread
{
private static final Object locko = new Object();
public void run()
{
synchronized(locko)
{
System.out.println("1 ");
System.out.println("2 ");
}
}
}
public class Interleaving
{
public static btevent bt = new btevent();
public static btstep bs = new btstep();
public static void main(String[] args)
{
bt.start();
bs.start();
}
}
这个程序的运行输出是
1
3
2
4
这不是我想要的。同步的代码块不再是串行的,它交错我想要的输出是
1
2
3
4
或者
3
4
1
2
我在程序中做错了什么?