- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单元8网络编程与多线程应用8.6多线程的同步程序设计
多线程的同步如何解决资源共享的问题?共享资源加锁所有解决多线程资源冲突问题的方法,都是在给定时间只允许一个线程访问共享资源,相当于给共享资源加道锁。使用代码块实现线程同步使用方法实现线程同步
多线程的同步使用代码块实现线程同步同步机制使用synchronized关键。每个Java对象都有一个内置锁,如果代码块使用synchronized关键字进行声明,通过锁定指定的对象,来对同步块中包含的代码进行同步,则使用该关键字的代码块称为同步块,也称为临界区。synchronized(Object)同步代码与同步方法锁的是对象,而不是代码。如果某个对象被同步代码块或同步方法锁住了,那么其他使用该对象的代码必须等待,直到该对象的锁被释放。
publicclassSynchronizedTestimplementsRunnable{intnum=10;//设置当前总票数publicvoidrun(){while(true){//设置无限循环synchronized(this){//设置同步代码块if(num0){//判断当前票数是否大于0try{Thread.sleep(100);//使当前线程休眠100毫秒}catch(Exceptione){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+“---票数+num--;}}}}publicstaticvoidmain(String[]args){SynchronizedTestt=newSynchronizedTest();ThreadtA=newThread(t,线程1);ThreadtB=newThread(t,线程2);ThreadtC=newThread(t,线程3);ThreadtD=newThread(t,线程4);tA.start();//分别启动线程tB.start();tC.start();tD.start();}}示例:使用同步块模拟售票系统,解决一票多卖的现象运行结果:
每个Java对象都有一个内置锁,如果方法使用synchronized关键字进行声明,内置锁就会保护整个方法。在在调用该方法前,需要获得内置锁,否则程序将会处于阻塞状态。使用方法实现线程同步publicsynchronizedvoidf(){}多线程的同步
示例:使用同步方法解决模拟售票系统的资源共享问题。publicclassSynchronizedTest1implementsRunnable{intnum=10;//设置当前总票数publicsynchronizedvoidf(){if(num0){//判断当前票数是否大于0try{Thread.sleep(100);//使当前线程休眠100毫秒}catch(Exceptione){e.printStackTrace();}System.out.println(Thread.currentThread().getName()+--票数+num--);}}publicvoidrun(){while(true){f();}}publicstaticvoidmain(String[]args){//实例化类对象SynchronizedTest1t=newSynchronizedTest1();//以该类对象分别实例化4个线程ThreadtA=newThread(t,线程1);ThreadtB=newThread(t,线程2);ThreadtC=newThread(t,线程3);ThreadtD=newThread(t,线程4);tA.start();//分别启动线程tB.st
您可能关注的文档
- 8.1simplify3D安装及界面介绍.pptx
- 8.1典型数控机床液压系统的分析.ppt
- 8.2.1 CCD电荷耦合器件.pptx
- 8.2.3 CCD视觉传感器的应用.pptx
- 8.2机床动力滑台液压系统的控制与调节.ppt
- 8.2任务二 拆画装配图.pptx
- 8.3 序号操作 (1)课件讲解.pptx
- 8.3 异常处理结构.pptx
- 8.3液压多缸动作控制回路的应用.ppt
- 8.4 断言与上下文.pptx
- 2024年增员企划方案.docx
- 2024年备份实施方案.docx
- 2024年士官队伍专项治理方案.docx
- 专题三 地球上的大气 第4节 气压带风带与气候 2025年高考地理基础专项复习.pptx
- 专题十二 环境与发展.pptx
- 专题五 地表形态的塑造 第3节 河流地貌的发育 2025年高考地理基础专项复习.pptx
- Unit 3 Environmental Protection Reading and Thinking 说课 课件-2023-2024学年高中英语人教版(2019)选择性必修第三册.pptx
- Unit 1 Science and Scientists(Reading and Thinking)(课件)-2024-2025学年英语人教版(2019)选择性必修第二册同步课.pptx
- 选择性必修第二册 词性转换-2024-2025学年英语人教版(2019)选择性必修第二册同步课.pptx
- 感谢信写作课件-2025届高三英语上学期一轮复习专项.pptx
最近下载
- 2024年河北省继续医学教育公共必修课参考答案.docx VIP
- 探究中国传统文化在英语教学中的渗透策略-来源:校园英语(第2018013期)-河北阅读传媒有限责任公司.pdf VIP
- 《树真好》幼儿园大班语言PPT课件.pptx VIP
- 初中英语教学渗透中国传统文化的路径探究-来源:校园英语(第2021044期)-河北阅读传媒有限责任公司.pdf VIP
- 实验室安全风险分级管控制度(经典完整版).pdf VIP
- 太极扇课程纲要.docx
- 动物干细胞培养技术.ppt VIP
- 历年高考化学锂(离子)电池试题汇编.pdf
- 2024年免疫组化染色仪行业研究报告及未来五至十年预测分析报告.docx
- 《我爱家乡山和水》教案 道德与法治教案3.pdf VIP
文档评论(0)