我在理解线程如何工作时遇到问题:
class ThreadTest implements Runnable{
synchronized void methodA(long n){
for (int i=1;i<3;i++){System.out.print(n+" "+i)}
}
public void run(){
methodA(Thread.currentThread.getId());
}
public static void main(String ... args){
new Thread(new ThreadTest()).start();
new Thread(new ThreadTest()).start();
}
}
据我目前的理解,因为methodA
在这个方法中是一个同步的for循环,它必须在下一个线程调用这个方法之前完成——所以结果必须像4-1 4-2 5-1 5-2...
是否有可能得到类似的结果4-1 5-1 5-2 4-2
?如果是,如何?