Multithreading 通用语言执行多线程的能力如何?

Multithreading 通用语言执行多线程的能力如何?,multithreading,Multithreading,在我的CS课上,我们讨论了线程和进程。我很想知道什么样的通用编程语言(Java、C/C++、C#、Python)可以真正实现多线程,如果它们实现了,它们的效率如何 我们在C语言中看到了一个简单的多线程结构,但是他们没有通过运行它或者通过一个从以前的测试中收集的结果图表来证明这一区别。我假设使用多线程的某些语言的收益可以忽略不计 编辑 PDizzle指出,效率的提高不一定取决于语言,而是取决于所讨论的应用程序/软件需要什么,以及该应用程序/软件的实现情况。我认为大多数现代语言都能很好地完成多任务。

在我的CS课上,我们讨论了线程和进程。我很想知道什么样的通用编程语言(Java、C/C++、C#、Python)可以真正实现多线程,如果它们实现了,它们的效率如何

我们在C语言中看到了一个简单的多线程结构,但是他们没有通过运行它或者通过一个从以前的测试中收集的结果图表来证明这一区别。我假设使用多线程的某些语言的收益可以忽略不计

编辑


PDizzle指出,效率的提高不一定取决于语言,而是取决于所讨论的应用程序/软件需要什么,以及该应用程序/软件的实现情况。我认为大多数现代语言都能很好地完成多任务。现代是c++11、java、c#、d等


然而,大多数程序不能从多任务处理中获益,不是因为使用的语言,而是因为多线程的算法不能从并行处理中获益。想想排序算法之类的

当程序创建一个单独的线程进行处理时,这一切归结为程序调用操作系统请求线程资源

每个操作系统都有一个API编程语言,可以请求在程序中使用多线程。实现依赖于平台。C++(现在)具有依赖于操作系统的调用的STD::线程。Java具有实现从虚拟机到操作系统的调用以请求线程的类

我假设使用多线程的某些语言的收益可能会有所增加 微不足道


否,使用多线程的收益通常可以忽略不计,具体取决于应用要求。我想说,应用程序如何使用线程来完成任务比担心每种语言访问多线程的开销更重要。

最好的收益来自线程执行原子操作。网络爬虫就是一个很好的例子。将每个页面的处理过程传递给单个线程。这个问题的范围太广。定义通用编程语言,并有效地定义其规模。@KenWhite感谢您指出,我知道您可以在python中进行多进程,但不能进行多线程。排序可以是多线程的,分为n个部分,对每个部分进行排序,合并,所以就像PDizzle所说的:这不是语言/平台的问题,而是它在编码中的实现情况,以及它是否满足应用程序的需要?如果你需要更改/添加任何内容,我只会让你知道我编辑了一点我的帖子。如果我错误地引用了你的话,请纠正我