美文网首页
Java线程机制的局限性

Java线程机制的局限性

作者: 俊杰的笔记 | 来源:发表于2017-03-31 16:08 被阅读16次

    原文:https://www.ibm.com/developerworks/cn/java/j-lo-processthread/index.html

    Java 线程与操作系统线程

    从上我们知道,Java 线程是建立在系统本地线程之上的,是另一层封装,其面向 Java 开发者提供的接口存在以下的局限性:

    线程返回值

    Java 没有提供方法来获取线程的退出返回值。实际上,线程可以有退出返回值,它一般被操作系统存储在线程控制结构中 (TCB),调用者可以通过检测该值来确定线程是正常退出还是异常终止。

    线程的同步

    Java 提供方法 Thread#Join()来等待一个线程结束,一般情况这就足够了,但一种可能的情况是,需要等待在多个线程上(比如任意一个线程结束或者所有线程结束才会返回),循环调用每个线程的 Join 方法是不可行的,这可能导致很奇怪的同步问题。

    线程的 ID

    Java 提供的方法 Thread#getID()返回的是一个简单的计数 ID,其实和操作系统线程的 ID 没有任何关系。

    线程运行时间统计

    Java 没有提供方法来获取线程中某段代码的运行时间的统计结果。虽然可以自行使用计时的方法来实现(获取运行开始和结束的时间,然后相减 ),但由于存在多线程调度方法的原因,无法获取线程实际使用的 CPU 运算时间,因而必然是不准确的。

    相关文章

      网友评论

          本文标题:Java线程机制的局限性

          本文链接:https://www.haomeiwen.com/subject/vvsvottx.html