- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《2016年计算机二级Java多线程入门技巧(3-4)》.doc
2012年计算机二级Java多线程入门技巧(3-4) 来源: :91UP快学堂 时间:2012/7/31 使用Synchronized关键字同步类方法 要想解决脏数据的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下public synchronized void run() 2.{ 3. 4.} 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只能被一个线程调用,并当前的run执行完后,才能被其他的线程调用。即使当前线程执行到了run方法中的yield方法,也只是暂停了一下。由于其他线程无法执行run方法,因此,最终还是会由当前的线程来继续执行。先看看下面的代码: sychronized关键字只和一个对象实例绑定 5.class Test 6.{ 7. public synchronized void method() 8. { 9. 10. } 11.} 12. 13.public class Sync implements Runnable 14.{ 15. private Test test; 16. public void run() 17. { 18. test.method(); 19. } 20. public Sync(Test test) 21. { 22. this.test = test; 23. } 24. public static void main(String[] args) throws Exception 25. { 26. Test test1 = new Test(); 27. Test test2 = new Test(); 28. Sync sync1 = new Sync(test1); 29. Sync sync2 = new Sync(test2); 30. new Thread(sync1)。start(); 31. new Thread(sync2)。start(); 32. } 33. } 在Test类中的method方法是同步的。但上面的代码建立了两个Test类的实例,因此,test1和test2的method方法是分别执行的。要想让method同步,必须在建立Sync类的实例时向它的构造方法中传入同一个Test类的实例,如下面的代码所示: Sync sync1 = new Sync(test1); 不仅可以使用synchronized来同步非静态方法,也可以使用synchronized来同步静态方法。如可以按如下方式来定义method方法: 34.class Test 35.{ 36. public static synchronized void method() { } 37.} 建立Test类的对象实例如下: 38.Test test = new Test(); 对于静态方法来说,只要加上了synchronized关键字,这个方法就是同步的,无论是使用test.method(),还是使用Test.method()来调用method方法,method都是同步的,并不存在非静态方法的多个实例的问题。 在23种设计模式中的单件(Singleton)模式如果按传统的方法设计,也是线程不安全的,下面的代码是一个线程不安全的单件模式。 39.package test; 40. 41.// 线程安全的Singleton模式 42.class Singleton 43.{ 44. private static Singleton sample; 45. 46. private Singleton() 47. { 48. } 49. public static Singleton getInstance() 50. { 51. if (sample == null) 52. { 53. Thread.yield(); // 为了放大Singleton模式的线程不安全性 54. sample = new Singleton(); 55. } 56. return sample; 57. } 58.} 59.public class MyThread extends Thread 60.{ 61. public void run(
您可能关注的文档
- 《2016 High-power in-band pumped ErYAG laser at 1617 nm》.pdf
- 《2016 Improving the Lagrangian Relaxation Approach for Large Job-shop Scheduling》.pdf
- 《2016 Iterative Flattening Search for the Flexible Job Shop Scheduling Problem》.pdf
- 《2016 Job-shop scheduling with blocking and no-wait constraints 》.pdf
- 《2016 Job-shop scheduling with processing alternatives 》.pdf
- 《2016 Job-Shop调度问题的分批和最优化策略》.pdf
- 《2016 Lagrangian bounds for just-in-time job-shop scheduling 》.pdf
- 《2016 Lagrangian relaxation for complex job shop scheduling》.pdf
- 《2016 Lagrangian Relaxation Neural Networks for Job Shop Scheduling》.pdf
- 《2016 Largrangian Relaxation Neurual Networks for Job Shop Scheduling 》.pdf
- 《2016景观照明设计研讨会》.pdf
- 《2016流行的几款LED显示屏配图详解》.doc
- 《2016版Oeko_Tex和2016版Eco_Label标签标准》.pdf
- 《2016秋季Java程序设计期末考试试卷_A卷_》.doc
- 《2016级经贸英语 lesson 4 Remittance》.ppt
- 《2016股市技术分析、K线分析入门》.ppt
- 《2016薪酬调查报告Job88_2016》.pdf
- 《2016软件大赛JAVA试题》.doc
- 《2016高考英语一轮限时特训:4-2 Working the land(人教版)》.doc
- 《209. MABEL COLLINS - Light on the Path》.doc
最近下载
- 面向2025年商业银行的金融科技人才金融科技产品运营能力培养策略.docx
- 【50页PPT】数据治理平台与数据运营体系建设方案.pptx VIP
- E5071B网络分析仪指导书.pdf VIP
- 汽车售后经理年终总结.pptx VIP
- 操作考核标准:简易呼吸气囊.pdf VIP
- 高标准基本农田建设项目竣工验收报告.docx VIP
- 人力资源控制程序.doc VIP
- 2020年美工理论题库4.docx VIP
- 国标图集05s502图集阀门井-国家建筑标准设计图集电子版下载 1.docx VIP
- 第2讲 一心跟着共产党(第一课时)没有共产党就没有新中国(课件)-《学生读本(小学低年级)》.pptx VIP
文档评论(0)