网站大量收购闲置独家精品文档,联系QQ:2885784924

Java多线程并发系统中的安全性数与公平性.doc

Java多线程并发系统中的安全性数与公平性.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java多线程并发系统中的安全性与公平性 麻孜宁,伊浩,李祥 摘要:多线程是Java的一个重要方法,特别有利于在程序中实现并发任务。Java提供Thead线程类,实现了多线程的并发机制。然而,程序的并发执行必定会出现多个线程互斥访问临界资源的局面,因而并发系统解决的关键就是对临界资源 的管理和分配问题,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性。文中首先讨论了多线程并发系统中 的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性。并通过火车行驶单行隧道的实例, 演示各种条件下的行驶情况来进一步说明该问题。 O 引 言 : 并发即多道程序在同一CPU上分时运行,实现多个任务同时执行。但是系统的并发执行必然会引起线程在访问临界资源时冲突的产生,即多个线程同一时刻申请访问资源。因而并发系统需首要解决的就是对临界资源的管理和分配。然而在进行临界资源分配时有两方面需要,考虑,即安全性和公平性。文中通过火车行驶单行隧道的实例演示? ,模拟各种情况下所产生的结果来进一步说明并发系统中安全性与公平性的重要性,指出Java中对多线程的并发控制应该 做到公平性和安全陛的理想兼容,两方面都不可忽视。 l 并发系统的概念 : 并发f ,通俗地讲,就是在某一时段同时发生几件事的现象,这是生活中很常见的。但是在计算机系统中,并发是相对于多道程序分时地运行在同一个CPU 上而言的。如果在单CPU下同时运行几道程序,那么在宏观上,这几道程序是同时向前推进,但从微观上观察,则是由单CPU按照时间片轮流执行每个程序的一小部分代码,使每个程序都运行到程序的开始与结束之间的某一处。从逻辑上讲,这几道程序都在运行,但从CPU的执行轨迹上观察,却是轮地为每个程序执行一段时间,循环往复,直到所有程序依次完成。目前使用的计算机几乎都是单的机器,但是都能同时完成几件不同的工作,就是因为采用了CPU分时原理,因此逻辑上的并行称之为“并发”。 为了提高系统的吞吐量,实现多个任务同时执行,在20世纪60年代提出了进程的概念,每个进程代表一个独立的任是系统可以进行分配调度的基本单位。到80年代中期,人们又提出了比进程更小的能独立运行的基本单位— — 线程l3,用它来提高系统内程序并发执行的速度,从而可进一步提高系统的吞吐量。线程的引入减少了程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。线程是进程中的一个实体,是被系统独立调度和分配的基本单位。多线程的核 t2,在于多个代码块并发执行,本质特点在于各代码块之间的代码是乱序执行的。 2 Java中的多线程并发执行中的安全性与公平性 : Java提供了线程类Thread,其中重要方法是run(),它为Thread类中的start()方法所调用,提供线程所要执行的代码。建立线程有两种方法:继承Thread类和实现Runnable接口 。Java提供了线程类Thread,实现了多线程并发执行机 制,在Java程序并发执行中,必定会出现多个线程互斥访问临界资源的局面,因而并发系统首要解决的关键就是对临界资源的管理和分配,同一时刻只有一个线程能够访问临界资源。然而在进行临界资源分配时有两方面需要考虑,即公平性和安全性。一方面,对申请访问临界资源的所有线程要公平对待,不能对部分线程优先考虑,使一些线程长时间独占资源,而使其它的线程进行长时间的等待,得不到资源;另一方面,在考虑了公平性的同时,也不能忽视了安全性的考虑,出现某一个线程访问临界资源,致使程序不能正常运行,产生严重的后果。在Java中对多线程的并发控制应该做到公平性和安全性的理想兼容,两方面都不可忽视。并发系统的公平性使得资源在多线程之间得到相当科学和合理的分配,安全性保证了各线程的正常调度运行,从而使程序顺利地执行结束,完成任务。 3 Java中多线程并发系统的安全性与公平性的具: 具体实现,对于多线程并发系统中的安全性,应该做好对临界资源的管理,以及对其访问情况的监督,充分保证在临界资源空闲时才能被线程申请使用,即使牺牲点系统运行时间,也要保正程序的正常执行。下面以一个多线程并发访问临界资源的例子来具体说明并发系统中的公平性和安全性问题。 3.1 问题描述 如图1所示,在单行隧道中,每次只能容纳一列火车行驶,本程序就是控制使两边的火车都能安全地通过隧道。如果火车来自同一个方向,它们可以并行地安全通过隧道,但是如果是两辆来自不同方向的火车,在隧道中相 遇,就会发生冲突。 3.2 功能实现: 本程序简单模拟了上述问题,假设左边是LeftTrain,右边是RightTrmn,实现了火车为一、二、三列,以及分别考虑安全性和公平性的各种情况的实况模拟,说明并发系统中的公平性与安全性的重要性。 3.3 程序中安全

文档评论(0)

zzabc003 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档