Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 多线程与多进程_Linux_Multithreading - Fatal编程技术网

Linux 多线程与多进程

Linux 多线程与多进程,linux,multithreading,Linux,Multithreading,我正在开发一个需要搜索非常大的状态空间的应用程序。为了做到这一点,我已经获得了访问32核集群节点的权限。我的程序不需要太多内存(可能是10兆字节),也不需要太多IO(除了在找到某个文本文件时输出解决方案)。因此,我的问题是:对于我来说,编写一个程序比启动多个线程来并行执行搜索更好,还是与启动相同进程的实例相同,以便在它们之间均匀分配搜索空间(使用不同的命令行参数指定) 在我的例子中,空间可以独立搜索,因此我不需要线程/进程之间的任何共享内存。我只关心搜索效率。值得注意的是,该计划可能需要运行数周

我正在开发一个需要搜索非常大的状态空间的应用程序。为了做到这一点,我已经获得了访问32核集群节点的权限。我的程序不需要太多内存(可能是10兆字节),也不需要太多IO(除了在找到某个文本文件时输出解决方案)。因此,我的问题是:对于我来说,编写一个程序比启动多个线程来并行执行搜索更好,还是与启动相同进程的实例相同,以便在它们之间均匀分配搜索空间(使用不同的命令行参数指定)


在我的例子中,空间可以独立搜索,因此我不需要线程/进程之间的任何共享内存。我只关心搜索效率。值得注意的是,该计划可能需要运行数周或数月。请原谅我的无知,我有理论背景。

除了任何其他问题,请思考基础设施和维护。 更有用的是——拥有一个多线程应用程序,或者应用程序的多个实例

如果有可能,您需要在不同的条件下,或在不同的物理机器/分布式计算机上启动不同的应用程序,而多个应用程序将是一个解决方案,但这样您需要考虑日志、部署和其他维护问题


一般来说,如果你想让它变得简单,就不要使用多线程单实例化应用程序。

除了任何其他问题,请考虑基础设施和维护。 更有用的是——拥有一个多线程应用程序,或者应用程序的多个实例

如果有可能,您需要在不同的条件下,或在不同的物理机器/分布式计算机上启动不同的应用程序,而多个应用程序将是一个解决方案,但这样您需要考虑日志、部署和其他维护问题


一般来说,如果你想让它变得简单,就不要使用多线程单实例化应用程序。

我想说的是,使用多进程。您根本不必处理同步,也不会有加入线程。

我想说的是,使用多进程。您根本不必处理同步问题,也不会有线程加入。

CentOS 6-将用C/C++编写。对于完全分区的问题,使用线程和进程之间可能不会有性能差异。使用你觉得更舒服的东西。不过,进程的一个优点是:如果单个工作进程崩溃,则只需要重新启动该工作进程,而在多线程程序中,一个线程中的崩溃会破坏所有进程。从维护的角度来看,多个进程通常也是可行的。由于数据可以完全分区,因此更容易扩展到更多节点以获得额外性能。多节点/进程正是solr云的设计方式。您的搜索可能不属于solr用例,但设计似乎类似。CentOS 6-将用C/C++编写此文档。对于完全分区的问题,使用线程和进程之间可能没有性能差异。使用你觉得更舒服的东西。不过,进程的一个优点是:如果单个工作进程崩溃,则只需要重新启动该工作进程,而在多线程程序中,一个线程中的崩溃会破坏所有进程。从维护的角度来看,多个进程通常也是可行的。由于数据可以完全分区,因此更容易扩展到更多节点以获得额外性能。多节点/进程正是solr云的设计方式。您的搜索可能不属于solr用例,但设计似乎类似。