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

 

 

 例: 

 

 

 结果  

 

 

 

 

 例1  同步代码块  +  一般方法;

如果 同步代码块、同步方法同时使用 。由于同步方法使用的对象是本类的对象。如果想实现一起同步需要同步代码块使用this对象。如下:

  结果  

 

 例2  同步代码块  +  静态方法;

静态方法实现 ,只需要在方法中加上静态  及 同步代码块方式,使用(SellTicket对象)。

synchronized (SellTicket.class){

 

 

 

 例:

 

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

 

 

 

例:

 

 结果ok  

 

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

 

 

     结果 

 

posted @ 2020-05-23 18:57  mengjiabei  阅读(191)  评论(0)    收藏  举报