线程安全 synchronized
?
输出:
num is value +===thread1---------2
num is value +===thread1---------3
num is value +===thread1---------4
num is value +===thread2---------5
num is value +===thread2---------6
num is value +===thread2---------7
?
在启用同步锁机制以后,需要避免
1无线等待,,线程B等待线程A执行完毕,然后线程A确进入了死循环。
2循环等待:两个线程相互调用,都要求要同步执行,这个时候就先会循环等待,我等你执行,你也在等我执行,这个时候就死锁了。
?
注意:
理论上,每个对象都可以做为锁,但一个对象做为锁时,应该被多个线程共享,这样才显得有意义,在并发环境下,一个没有共享的对象作为锁是没有意义的。假如 有这样的代码:
?