- 3
- 0
- 约6.51千字
- 约 44页
- 2019-09-18 发布于甘肃
- 举报
不同语言中,同步代码段的实现模型类似,只是表达方式有些不同。这里以Java语言为例,在Java语言中,synchronized关键字可以解决这个问题,整个语法形式表现为: 注意,synchronized后的“同步锁对象”,必须是可以被各个线程共享的,如this、某个全局标量等。不能是一个局部变量。 其原理为:当某一线程运行同步代码段时,在“同步锁对象”上置一标记,运行完这段代码,标记消除。其他线程要想抢占CPU运行这段代码,必须在“同步锁对象”上先检查该标记,只有标记处于消除状态,才能抢占CPU。在上面的例子中,this是一个“同步锁对象”。 synchronized(同步锁对象) { // 访问共享资源,需要同步的代码段 } * 因此,在上面的案例中,可以将将卖票的代码用synchronized代码块包围起来,“同步锁对象”取this。 如代码P03_05.java所示。 运行,可以得到如下效果。 * 这说明程序运行完全正常。 从以上代码可以看出,该方法的本质是将需要独占CPU的代码用synchronized(this)包围起来。如前所述,一个线程进入这段代码之后,就在this上加了一个标记,直到该线程将这段代码运行完毕,才释放这个标记。如果其他线程想要抢占CPU,先要检查this上是否有这个标记。若有,就必须等待。 但是可以看出,该代码实际上运
您可能关注的文档
最近下载
- 物理-湖北省随州市2026届高三下学期二模考试.docx VIP
- 2026年深圳中考英语试卷(含答案及解析).docx
- 2026年军队文职人员招聘考试(新闻专业)综合试题及答案.docx
- westfalia分离机D10控制器中文说明书.pdf
- 2026年福建省漳州市高一英语下册期末考试试卷及答案.docx VIP
- 湖北省武汉市武钢2026届高三下学期5月适应性考试物理试卷含答案.pdf VIP
- 2026年山东省东营市公需课答案.pdf VIP
- 剑桥顶级教材unlock 3级课件-unit1RW Video+R1.pptx VIP
- 四升五年级数学暑假作业52天.pdf VIP
- 湖北省武汉市2024届高三二月调研考试物理.docx VIP
原创力文档

文档评论(0)