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

实时 Java,第 3 部分 线程化与同步.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实时 Java,第 3 部分 线程化与同步

实时 Java,第 3 部分 线程化和同步【转】 实时Java,第3部分:线程化和同步 Java实时规范中的线程化和同步考虑 Patrick Gallop(gallop@),高级软件开发人员,IBM Toronto LabMark Stoodley,咨询软件开发人员,IBM Toronto Lab 简介:本文是关于实时Java?系列文章(共5部分)的第三篇,考察了Java实时规范(RTSJ)的实现必须支持的线程化和同步问题。您还将了解开发和部署实时应用程序时必须牢记的一些有关这两方面的基本考虑。 查看本系列更多内容 标记本文!发布日期:2007年5月24日 级别:高级 访问情况3139次浏览 建议:0(添加评论) 平均分(共3个评分)线程化和同步是Java编程语言的核心特性,Java语言规范(JLS)中对二者作出了描述。RTSJ用多种方式扩展了JLS的核心功能。(参见参考资料中关于JLS和RTSJ的链接。)例如,RTSJ引入了一些新的实时(RT)线程类型,它们必须遵守比普通Java线程更加严格的调度策略。另一个例子是优先级继承,它是一种锁定策略,定义了锁竞争时如何管理锁同步。 理解对优先级和优先级序列的管理有助于理解RTSJ针对线程化和同步所作的更改。优先级也是RT应用程序使用的一种重要工具。本文通过讨论如何管理线程优先级和优先级序列来描述RTSJ线程化和同步。讨论了开发、部署和执行RT应用程序(包括使用IBM WebSphere?Real Time开发的应用程序,参见参考资料)时应该考虑的一些方面。 理解普通的Java线程 JLS中定义的线程称为普通Java线程。普通Java线程是DE java.lang.ThreadDE类的一个实例,该类拥有从1到10的10个优先级别。为了适应大量的执行平台,JLS在如何实现、调度和管理普通Java线程的优先级方面提供了很大的灵活性。 WebSphere VMs on Linux?(包括WebSphere Real Time)使用Linux操作系统提供的本地线程化服务。您可以通过理解Linux的线程化和同步来学习Java的线程化和同步。 Linux线程化和同步 Linux操作系统发展至今已经提供了不同用户级别的线程化实现。Native POSIX Thread Library(NPTL)(参见参考资料)是Linux必威体育精装版版本的战略性线程化实现,由WebSphere VMs所使用。NPTL与它的前任相比优势在于POSIX兼容性和性能。在编译时可通过系统的头文件获取POSIX服务。可在运行时通过DE libpthread.soDE动态库和底层Linux核心支持获取POSIX服务。Linux核心可以根据静态控制(如线程优先级级别)和系统中执行的线程的某些动态条件下来执行线程调度。 POSIX允许您创建具有不同线程调度策略和优先级的POSIX线程(pthreads)以满足不同应用程序的需求。下面是三种此类的调度策略: DE SCHED_OTHERDE DE SCHED_FIFODE DE SCHED_RRDE DE SCHED_OTHERDE策略用于传统用户任务,如程序开发工具、办公应用程序和Web浏览器。DE SCHED_RRDE和DE SCHED_FIFODE主要用于具有更高的确定性和时限需求的应用程序。DE SCHED_RRDE和DE SCHED_FIFODE之间的主要区别是DE SCHED_RRDE分时间片执行线程,而DE SCHED_FIFODE则不是这样。DE SCHED_OTHERDE和DE SCHED_FIFODE策略用于WebSphere Real Time,并在下面作出了更加详细的描述。(我们不介绍DE SCHED_RRDE策略,WebSphere Real Time没有使用它。) POSIX通过DE pthread_mutexDE数据类型提供锁定和同步支持。DE pthread_mutexDE可以使用不同的锁定策略创建。当多个线程需要同时获取同一个锁的时候,锁定策略常常会影响执行行为。标准的Linux版本支持单个的默认策略,而RT Linux版本还支持优先级继承锁定策略。我们将在本文的同步概述一节对优先级继承策略作更详细的描述。 Linux调度和锁定用来管理先进先出(FIFO)队列。 普通Java线程的线程调度 RTSJ指出普通Java线程的行为跟JLS中定义的相同。在WebSphere Real Time中,普通Java线程使用Linux的DE POSIX SCHED_OTHERDE调度策略来实现。DE SCHED_OTHERDE策略主要用于编译器和字处理程序之类的应用程序,不能用于需要更高确定性的任务。 在2.6 Linux内核中,DE SCHED_OTHERDE策略支持4

您可能关注的文档

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档