请问java中的多线程和其他语言中的MPI并行编程有什么区别和联系吗?
菜鸟一枚,轻拍 多线程 java 并行编程 并行计算 c++ --------------------编程问答-------------------- 没人回复啊 --------------------编程问答-------------------- 我就没学过其他语言的多线程。。。只是感觉上应该没多大区别吧。。。 --------------------编程问答--------------------
请问c++中有多线程吗?c++中的MPI并行编程是不是跟java里面的多线程所完成的任务大致相同?
例如我有3个互相独立的计算任务,有一4核处理器,用java的多线程是不是可以实现让4核其中的3个核心并行执行那3个计算任务? --------------------编程问答-------------------- 我的C++虽然只是在大学里学了那么一丁点,但是我还是确定有的,虽然我没有用过。。
要不一个游戏单线程怎么玩?
第二个虽然理论上4核就是同时处理4个并发线程,但是怎么样分配貌似并不是java管的,所以其实也有可能一个核处理2个或者更多。 --------------------编程问答--------------------
非常感谢。还有个问题,例如我有100块数据需要处理,如果线性处理,每次读入1块数据,处理完继续读入下一块数据继续处理。如果我用多线程,是否可以每次读入2块或者多块同时处理?这样处理速度是否比之前的线性处理要速度快?如果把数据处理部分设计成可并行执行的函数,多核处理器是否可以加快处理速度?
不知道我的表述你是否大概了解了呢? --------------------编程问答-------------------- 我的理解能力还是不错的。。
就如你所说100个数据需要处理,单线程的话需要运行100次
多线程就是5个线程运行20次之类的。。
我可以举一个例子类比一下吧。。
我们需要做100块月饼,但是生成月饼的机器只有一台,
每个线程相当于一个人,我们可以由1个人做100个,那么这台机器就是他独占了。。
如果5个人轮流使用这台机器(5个线程),那么在别人使用的时候肯定就会有人在等着使用这台机器。。
生成月饼肯定得准备材料等等工序,并不是单单的用机器。
所以比如5个线程会加快运行速度,但是肯定不会达到快5倍的效果。
至于快多少,这个和需要占用机器多长时间有关系。。 --------------------编程问答--------------------
多谢大神指点,主要是看了一篇论文,然后想用java多线程模拟一下c++中并行编程同时处理数据,不过都不是很理解,而且有些涉及到硬件和操作系统底层的东西
补充:Java , Java SE