java

位置:IT落伍者 >> java >> 浏览文章

Java线程模型缺陷研究[1]


发布日期:2019年07月05日
 
Java线程模型缺陷研究[1]

Java 编程语言的线程模型可能是此语言中最薄弱的部分它完全不适合实际复杂程序的要求而且也完全不是面向对象的本文建议对 Java 语言进行重大修改和补充以解决这些问题

Java 语言的线程模型是此语言的一个最难另人满意的部分尽管 Java 语言本身就支持线程编程是件好事但是它对线程的语法和类包的支持太少只能适用于极小型的应用环境

关于 Java 线程编程的大多数书籍都长篇累牍地指出了 Java 线程模型的缺陷并提供了解决这些问题的急救包(BandAid/邦迪创可贴)类库我称这些类为急救包是因为它们所能解决的问题本应是由 Java 语言本身语法所包含的从长远来看以语法而不是类库方法将能产生更高效的代码这是因为编译器和 Java 虚拟器 (JVM) 能一同优化程序代码而这些优化对于类库中的代码是很难或无法实现的

Allen Holub 指出在我的《Taming Java Threads 》(请参阅 参考资料 )书中以及本文中我进一步建议对 Java 编程语言本身进行一些修改以使得它能够真正解决这些线程编程的问题本文和我这本书的主要区别是我在撰写本文时进行了更多的思考 所以对书中的提议加以了提高这些建议只是尝试性的 只是我个人对这些问题的想法而且实现这些想法需要进行大量的工作以及同行们的评价

这里提出的建议是非常大胆的有些人建议对 Java 语言规范 (JLS)(请参阅参考资料 )进行细微和少量的修改以解决当前模糊的 JVM 行为但是我却想对其进行更为彻底的改进

在实际草稿中我的许多建议包括为此语言引入新的关键字虽然通常要求不要突破一个语言的现有代码是正确的但是如果该语言的并不是要保持不变以至于过时的话它就必须能引入新的关键字为了使引入的关键字与现有的标识符不产生沖突经过细心考虑我将使用一个 ($) 字符而这个字符在现有的标识符中是非法的(例如使用 $task而不是 task)此时需要编译器的命令行开关提供支持能使用这些关键字的变体而不是忽略这个美元符号

[] [] [] [] [] [] []

               

上一篇:Java线程模型缺陷研究[2]

下一篇:Java线程模型缺陷研究[7]