Java 为多线程编程提供内置支持。
这就是我的书所说的。我也可以用 C、C++ 进行多线程编程。那么它们是否还提供对多线程的内置支持?
内置多线程支持是什么意思?操作系统不是真的提供对多线程的支持吗?
有没有不支持多线程的编程语言?如果是,为什么? (我问这个问题是因为,如果操作系统支持多线程,那么为什么我们不能在该操作系统支持的所有语言上进行多线程编程?)
最佳答案
问题是多线程的语言支持与库支持之间的一个问题。
Java 使用关键字 synchronized
来锁定对象是一种语言级别的构造。 Object
的内置方法(wait、notify、notifyAll)也直接在运行时实现。
关于语言是否应该通过关键字、语言结构和核心数据类型实现线程,还是应该在库中拥有所有线程功能,存在一些争论。
一篇支持语言级线程有益观点的研究论文是相对著名的 http://www.hpl.hp.com/personal/Hans_Boehm/misc_slides/pldi05_threads.pdf .
理论上,任何基于 C 运行时构建的语言都可以访问诸如 pthreads 之类的库,并且任何在 JVM 上运行的语言都可以使用这些线程。简而言之,所有可以使用库(并具有函数指针概念)的语言确实可以进行多线程处理。
关于multithreading - 内置多线程支持是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964236/