05_线程同步

引入:两人同时取同一账户的钱 两个线程访问同一资源,进程之间协调的问题

解决:在进程访问独占资源时先锁定再访问 synchronized 最好只锁定一个对象

加锁过程中:一个方法做了同步(加锁)另一个方法没有做同步,别的线程可以访问没做同步的方法,并且能影响已经同步的方法,要保护需要的同步的对象,必须对要访问的对象所有方法要仔细考虑加不加同步,加同步效率变低,不加同步有可能产生数据不一致的后果

读写两方法,写的方法加锁。

两个方法都改了同一个值,两个方法都应该加同步



输出:

t2,你是第1个使用timer的线程
t1,你是第2个使用timer的线程


改掉其中一段代码


就可以输出:

t1,你是第1个使用timer的线程
t2,你是第2个使用timer的线程

原文地址:https://www.cnblogs.com/firecode/p/2460902.html