多线程:解决数据安全问题(同步代码块、同步方法)、线程安全类 、Lock锁、线程等待及唤醒

例:


结果 

例1 同步代码块 + 一般方法;
如果 同步代码块、同步方法同时使用 。由于同步方法使用的对象是本类的对象。如果想实现一起同步需要同步代码块使用this对象。如下:
结果 
例2 同步代码块 + 静态方法;
静态方法实现 ,只需要在方法中加上静态 及 同步代码块方式,使用(SellTicket对象)。
synchronized (SellTicket.class){


例:
查看StingBuffer 类 源码 :方法中都带有synchronized 说明是多线程 安全 ‘’同步方法‘’ 的方法 。



例:

结果ok 
可以 用try{·········}finally{····} 优化。用处 如果 代码执行有问题 ,也会 unlock 锁;


结果 

浙公网安备 33010602011771号