|
|
1
17
许多 here ! |
|
|
2
6
你想要线程和演员说得好。..除非你知道一些关键字,否则你无法在谷歌上搜索它。 C POSIX线程 ,Posix Thread的缩写,尽管win32本机接口不是Posix,请参阅 Creating Threads on MSDN . Java See class Thread 最后,您应该阅读一些关于函数式编程、参与者并发性和不可变对象的知识。事实证明,在普通的旧共享内存中管理并发性是相当困难的,但消息传递和函数式编程可以让你使用本质上更安全的风格,避免并发问题。Java确实允许你以困难的方式完成所有事情,其中数据是可变的共享内存,你拼命地试图手动联锁共享状态结构。但您也可以在java中使用高级样式。也许从这篇JavaWorld文章开始: Actors on the JVM . |
|
|
5
3
|
|
|
6
2
很多人都在谈论线程,这是一种方法,但考虑另一种方法。如果你启动了几个JVM,连接到网络,并等待工作的到来,该怎么办?您将如何对应用程序进行编程,以便它可以在不知道它们是否在同一CPU上的情况下利用所有这些JVM? 在四核机器上,你应该能够运行12个或更多JVM来处理工作。如果你从这个角度来解决这个问题,扩展到多台计算机是相当简单的,尽管当你的通信是在真实的网络上时,你确实必须考虑更高的网络延迟。 |
|
|
7
2
|
|
|
8
1
您需要创建多线程程序。Java支持开箱即用的多线程(尽管较旧的JVM在一个核心上运行所有线程)。对于C,您需要使用特定于平台的代码来创建和操作线程(Linux的pthread*,Windows的CreateThread和company)。或者,您可能希望从C++进行线程处理,因为C++中有相当多的库(例如Boost::threads),使生活更简单,并允许移植代码。 如果你希望代码可以在具有多个内核和集群的单台机器上移植,你可以考虑MPI。它确实是为集群情况而设计的,但已被移植到具有多个处理器或多个内核的单台机器上工作——尽管它不如专门为单台机器编写的代码高效。 |
|
|
9
1
所以,这是一个非常广泛的问题。您可以尝试使用许多不同的编程语言(包括C或Java)进行多线程编程。如果你想让我给你选一个,我会选C.:)
此外,OpenMP可用于Windows,并提供了一个截然不同的多线程编程视图。 |
|
|
10
1
(需要注意的是:还有其他语言设计用于在高度并行的环境中运行,如Haskell。Erlang只是比Haskell等更注重理论的语言更实用) |
|
|
11
1
|
|
|
12
0
是的,有很多线程,但如果线程访问内存中的同一位置,则只有一个线程会执行, 我们需要多个内存核 |
|
|
14
0
对于Windows NT引擎(NT4、2000、XP、Vista和7),您应该研究的机制是线程、关键部分和I/O完成端口(iocp)。线程很好,但你需要能够在它们之间以及与I/O同步,这就是cs和iocp发挥作用的地方。为了确保你从代码中获得每一点性能,你需要分析、实验/重建。很有趣,但很耗时。 |
|
|
15
0
|