我对并发和多线程等主题不是很有经验。事实上,在我的大部分网络开发生涯中,我从来不需要接触这些主题。
我觉得这是一个重要的概念,尤其是对于桌面应用程序和基本上任何其他不生成 HTML 的应用程序 :)。
在阅读了一点并发之后,Go(谷歌编程语言)等语言似乎更好地支持它,我不太明白为什么一种语言在并发等概念上比其他语言更好,因为它基本上是关于能够fork() 并行处理和计算东西,对吧?这不就是编程的工作方式吗?
多线程似乎是并发的一个分支,因为它允许您在同一进程下并行运行事物,尽管它似乎是特定于平台的实现方式。
我想我的问题是,为什么特定语言在并发方面比其他语言更好,为什么 fork()ing 进程是一个更好的解决方案,而不仅仅是使用线程?
最佳答案
一方面,多线程与多进程不同,所以 fork() 在这里确实不适用。
多线程/并行处理很难。首先,您必须弄清楚如何实际划分要完成的任务。然后您必须协调所有并行位,这些位可能需要相互通信或共享资源。然后你需要整合结果,在某些情况下,这可能与前两个步骤一样困难。我在这里简化,但希望你明白。
所以你的问题是,为什么有些语言会更好?好吧,有几件事可以使它变得更容易:
这些只是可以使您在并行/多线程应用程序中的生活更轻松的一些示例。我敢肯定还有很多。
关于multithreading - 并发和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996648/