multithreading - 内置多线程支持是什么意思?

标签 multithreading programming-languages operating-system

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/

相关文章:

javascript - "truthy"和 "falsey"的结果在 JavaScript 中很困惑

c++ - 如何在 unix shell 中在后台执行命令?

java - 多线程java中的重复输出

Java ExecutorService - 有时比顺序处理慢?

python - Scipy:具有多线程的暴力(网格搜索)?

c++ - 线程安全的 FIFO/队列(多个生产者,一个消费者)

google-app-engine - 在 Google App Engine 上构建应用程序最简单、最简洁的网络技术是什么?

java - Java 类型推断何时产生无限类型?

c - 不同内核上的多个线程读取同一组文件

java - 如何通过java程序获取系统登录时间