码迷,mamicode.com
首页 > 其他好文 > 详细

Synchronized快

时间:2016-12-06 02:00:02      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:java   alt   dem   data   log   oar   title   申请   pop   

[java] view plain copy
 
  1. /* 
  2.  
  3. JAVA对于多线程的安全问题提供了专业的解决方式 
  4.  
  5. 就是同步代码块 
  6.  
  7. synchronized(对象)//这个对象可以为任意对象 
  8. { 
  9.     需要被同步的代码 
  10. } 
  11.  
  12. 对象如同锁,持有锁的线程可以在同步中执行 
  13. 没持有锁的线程即使获取CPU的执行权,也进不去 
  14.  
  15.  
  16. 同步的前提: 
  17. 1,必须要有两个或者两个以上的线程 
  18. 2,必须是多个线程使用同一个锁 
  19.      
  20. 必须保证同步中只能有一个线程在运行 
  21.  
  22. 好处:解决了多线程的安全问题 
  23.  
  24. 弊端:多个线程需要判断锁,较为消耗资源 
  25. */  
  26.   
  27. class Tick implements Runnable  
  28. {  
  29.     private int tick = 50;  
  30.   
  31.     Object obj = new Object();//申请一个对象  
  32.   
  33.     public void run()  
  34.     {  
  35.   
  36.         while(true)  
  37.         {  
  38.             synchronized(obj)  
  39.             {  
  40.                 if(tick > 0)  
  41.                 {  
  42.                     //try{Thread.sleep(40);}catch(Exception e){}  
  43.                     System.out.println( Thread.currentThread().getName() + " sail --" + tick--);  
  44.                 }     
  45.             }  
  46.         }  
  47.     }  
  48. }  
  49.   
  50. class TickDemo  
  51. {  
  52.     public static void main(String []args)  
  53.     {  
  54.         Tick t = new Tick();  
  55.   
  56.         Thread t1 = new Thread(t);  
  57.         Thread t2 = new Thread(t);  
  58.         Thread t3 = new Thread(t);  
  59.         Thread t4 = new Thread(t);  
  60.   
  61.         t1.start();  
  62.         t2.start();  
  63.         t3.start();  
  64.         t4.start();  
  65.   
  66.     }  
  67. }  

Synchronized快

标签:java   alt   dem   data   log   oar   title   申请   pop   

原文地址:http://www.cnblogs.com/xiongduang/p/6135811.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!