Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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
C++ 在web执行模型中实现EXE时的设计选择_C++_Executable - Fatal编程技术网

C++ 在web执行模型中实现EXE时的设计选择

C++ 在web执行模型中实现EXE时的设计选择,c++,executable,C++,Executable,我正在设计一个作为网站后端运行的组件。这个组件会处理一些人工智能逻辑,而我正在C++中构建它。最好让每个会话启动一个新的EXE地址空间,或者EXE将启动并运行,每个会话将启动一个新线程 或者有什么更好的建议吗?我最好让一个进程保持活动状态,并为每个“会话”创建一个新线程:如果你想在重载情况下获得良好的性能,那么启动一个新进程(fork、应用程序初始化等)将非常缓慢,可能会构成瓶颈 相比之下,创建一个新线程(在用户空间中)要轻得多 更好的是,您还可以保持进程运行,并创建线程池。然后,“管理器”线程

我正在设计一个作为网站后端运行的组件。这个组件会处理一些人工智能逻辑,而我正在C++中构建它。最好让每个会话启动一个新的EXE地址空间,或者EXE将启动并运行,每个会话将启动一个新线程


或者有什么更好的建议吗?

我最好让一个进程保持活动状态,并为每个“会话”创建一个新线程:如果你想在重载情况下获得良好的性能,那么启动一个新进程(fork、应用程序初始化等)将非常缓慢,可能会构成瓶颈

相比之下,创建一个新线程(在用户空间中)要轻得多

更好的是,您还可以保持进程运行,并创建线程池。然后,“管理器”线程将处理新连接,将其分配给现有线程并启动它。在这种情况下,您甚至不需要为每个新连接创建新线程。如果需要,管理器线程可以根据应用程序的负载调整现有线程的数量

编辑: 这可能很有用: