首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C并行线程与并行进程

C并行线程与并行进程
EN

Stack Overflow用户
提问于 2018-10-29 21:45:43
回答 2查看 121关注 0票数 0

我有一个小的c程序,它使用大量的cpu,这个程序编译成exe,我从我的c# gui运行它作为一个进程。

当我想在整个cpu内核上并行运行它时,我有两个选项。

我有4个cpu核心。

  1. 将这个core从我的c#中作为4个进程运行,这样我的操作系统将每个内核的进程1分开。
  2. 编辑我的c代码,使它运行4个线程,这样os将为每个内核分离一个线程,而我将从c#中作为一个进程运行它。

哪条路更快?

编辑:这些进程/线程将像3-5 those一样运行,并且不需要在anotger线程/进程之间进行通信。

所有这些都运行在windows上

EN

回答 2

Stack Overflow用户

发布于 2018-10-29 22:21:11

在C中运行4个线程将比在C#中运行4个进程更快。

进程之间的切换比线程之间的切换更严重,进程之间的通信要比线程之间的通信慢。

票数 0
EN

Stack Overflow用户

发布于 2018-10-29 22:34:32

分配进程需要更多的时间来分配线程,因为线程共享资源(代码、数据.)

如果您的cpu不断更改进程(这通常发生)不是更好的解决方案使用进程,使用线程是更有效的,特别是在一个cpu系统.

https://stackoverflow.com/a/200543/3476815

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53054301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档