Java提供了对多线程编程的内置支持.
我的书就是这么说的。我也可以用C,C++进行多线程编程。那么,他们是否也提供了对多线程的内置支持?
构建支持多线程意味着什么?难道不是操作系统真正提供了多线程支持吗?
是否有任何编程语言不能支持多线程?如果是的话,为什么?(我问这个问题是因为,如果操作系统提供多线程支持,那么为什么我们不能在该操作系统上支持的所有语言上进行多线程编程?)
发布于 2011-08-06 01:51:58
问题之一是对多线程的语言支持与库支持。
Java使用关键字synchronized在对象上放置锁是一种语言级别的构造。此外,Object上的内置方法(等待、通知、notifyAll)是在运行时直接实现的。
对于语言是否应该通过关键字、语言结构和核心数据类型来实现线程化,与拥有库中的所有线程功能相比,还存在一些争论。
一篇支持语言级线程有益的研究论文是相对著名的http://www.hpl.hp.com/personal/Hans_Boehm/misc_slides/pldi05_threads.pdf。
理论上,构建在C运行时上的任何语言都可以访问库(如p线程),而在JVM上运行的任何语言都可以使用这些线程。简而言之,所有可以使用库(并具有函数指针的概念)的语言都可以进行多线程处理。
发布于 2011-08-06 01:50:27
我相信它们意味着Java有关键字,比如volatile和synchronized关键字内置,使多线程变得更容易,而且库已经提供了线程类,所以您不需要第三方库。
发布于 2011-08-06 01:50:32
语言需要构造来创建和销毁线程,而操作系统则需要将这种行为提供给语言。
除了根本不是真正线程的Java线程之外,我认为Erlang也是一个例外。
一种不支持线程的语言,比如在DOS中由QBasic实现的Basic语言。Basic应该是基本的,因此线程和进程是高级特性,在语言意图中是非生产性的。
https://stackoverflow.com/questions/6964236
复制相似问题