- 0
- 0
- 约1.57千字
- 约 12页
- 2019-05-13 发布于广东
- 举报
第12讲:多线程编程(2) 内容提要 多线程的同步 同步代码块 同步方法 线程间的通信 wait/notifyAll 多线程的同步 线程安全 同步代码块 同步方法 线程安全 当多个线程共享某数据资源时,就有可能发生不安全的情况。 例程 该程序的输出结果中竟有0号票,这是不对的。这是因为一个线程在if条件检查时当前票号还是正的,接下来该线程睡眠0.3秒,这期间另外一个线程可能已经继续卖票了,这时票号已减为0,0.3秒后该线程再继续卖票,这就是卖0号票了。 这种情况称为线程不是安全的,为了线程的安全性,Java引入了多线程的同步机制。同步方式有两种:同步代码块和同步方法。 同步代码块 该同步方式的语法如下: synchronized(lockObject){ 代码块... } 注意关键字synchronized后面有一个参数lockObject,其含义是同步代码块刚要执行时,先检查lockObject的锁(lock)是开的还是闭的(注意任何Java对象都有锁),若锁是开的,则线程首先把锁关闭,然后执行同步代码块中的所有语句,执行完毕后再把锁打开,若锁是闭的,则线程不执行同步代码块。由此可见,同步代码块的作用就是使代码块成为CPU执行的一个不可分隔的、最小颗粒度的原子操作。 注意,lockObject对象必须是在多个线程之间共享的,即多线程的同步靠的是检查同一个对象的锁状态。
您可能关注的文档
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(1).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(2).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(3).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(4).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(5).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(6).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第2章(7).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第3章(1).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第3章(2).ppt
- 青岛大学自动化与电气工程学院计算机控制技术课件 第3章(3).ppt
- 统编版二年级语文上册课件《语文园地八》.pptx
- 眼部肌肤护理的日常习惯.pptx
- 第十单元 常见的酸、碱、盐 复习课(酸碱盐的化学性质)课件(内嵌视频)2025-2026学年九年级化学人教版下册.pptx
- 眼部肌肤护理的科学方法.pptx
- 2.4 磁铁能吸什么 课件(内嵌视频)2026-2027学年科学二年级上册苏教版.pptx
- 统编版二年级语文上册课件《阅读18 古诗二首》.pptx
- 科学二下4.12 寻访小动物的家 课件(苏教版2026新教材).pptx
- 煤矿企业各岗位安全生产风险告知.docx
- 第18课《井冈翠竹》课件-统编版语文七年级下册.pptx
- 第二章气体 液体和固体_气体液体固体单元复习课- 课件 -2026-2027学年高二下学期物理粤教版(2019)选择性必修第三册.pptx
原创力文档

文档评论(0)