这段代码为什么总是先发短信public class test1 public static void mainString args phone phone = new phone; new Thread- phonesendsms; start; new Thread- phonecall;
因为两个线程都在访问同一个对象phone,且两个方法都被synchronized修饰,所以只有一个线程能够执行其中一个方法,另一个线程必须等待。由于sendsms方法在先,所以第一个线程先获得了phone对象的锁,执行了sendsms方法,然后才释放锁,第二个线程才能够获得锁并执行call方法。所以总是先发短信。
原文地址: http://www.cveoy.top/t/topic/bE9S 著作权归作者所有。请勿转载和采集!