Multithreading 对多线程的内置支持意味着什么?

Multithreading 对多线程的内置支持意味着什么?,multithreading,programming-languages,operating-system,Multithreading,Programming Languages,Operating System,Java为多线程编程提供内置支持。 我的书就是这么说的。我可以在C、C++中进行多线程编程。那么,它们是否也提供了对多线程的内置支持 对多线程的内置支持意味着什么?不是操作系统真正提供了对多线程的支持吗 是否有任何编程语言不能支持多线程?如果是,为什么?(我问这个问题是因为,如果操作系统支持多线程,那么为什么我们不能在该操作系统上支持的所有语言上进行多线程编程?我相信他们的意思是Java内置了像volatile和synchronized这样的关键字,以简化多线程处理,而且该库已经提供了线程类,因

Java为多线程编程提供内置支持。

我的书就是这么说的。我可以在C、C++中进行多线程编程。那么,它们是否也提供了对多线程的内置支持

对多线程的内置支持意味着什么?不是操作系统真正提供了对多线程的支持吗


是否有任何编程语言不能支持多线程?如果是,为什么?(我问这个问题是因为,如果操作系统支持多线程,那么为什么我们不能在该操作系统上支持的所有语言上进行多线程编程?

我相信他们的意思是Java内置了像
volatile
synchronized
这样的关键字,以简化多线程处理,而且该库已经提供了线程类,因此您不需要第三方库。

该语言需要构造来创建和销毁线程,反过来,操作系统需要为该语言提供这种行为

例外情况是Java绿色线程根本不是真正的线程,我认为Erlang也是如此


一种不支持线程的语言,如Basic,由QBasic在DOS中实现。BASIC应该是基本的,所以线程和进程是C++语言中不具有生产力的高级特征。
  • 开线
  • 声明互斥、信号量等
  • 这不是语言规范的一部分。然而,每个主要操作系统上都有这样的功能。与Java不同,这些功能在不同的操作系统上是不同的:Linux、OS X和其他UNIX衍生产品上的pthread,Windows上的
    CreateThread
    ,实时操作系统上的另一个API


    Java对
    线程
    同步
    块和方法有一个语言定义,“通知”“等待”作为核心
    对象的一部分
    等等,这使语言能够正确理解多线程。

    这意味着语言的运行时中有一些功能,可以对线程的概念进行建模,以及提供同步等所有相关功能。幕后发生的事情取决于语言实现者。。。他们可以选择使用本机操作系统线程,也可以伪造本机操作系统线程


    不支持它的语言可能是VB6(至少不是本机的IIRC)

    问题在于多线程的语言支持与库支持之间的区别

    Java使用关键字
    synchronized
    对对象进行锁定是一种语言级别的构造。另外,
    对象
    (wait、notify、notifyAll)上的内置方法也直接在运行时实现

    关于语言是否应该通过关键字、语言结构和核心数据类型来实现线程,以及是否应该在库中拥有所有线程功能,存在一些争论

    一篇支持语言级线程是有益的观点的研究论文是相对著名的


    理论上,任何构建在C运行时上的语言都可以访问诸如pthreads之类的库,任何运行在JVM上的语言都可以使用这些线程。简而言之,所有可以使用库(并且具有函数指针的概念)的语言确实可以进行多线程处理。

    锁定、信号量和线程间通信的方法使语言更易于使用,但不定义语言是多线程的。但是,如果没有它们,语言就不会太有用。@Yann这是一个不需要操作系统支持的反例。目前的状况是不确定的。谢谢你链接到这篇研究论文。正是我想要的。