求问 什么时候用线程 什么时候用进程?

KingZ_c1ear 2011-06-01 09:10:17
本人菜鸟新人 最近看了看unix下C语言编程的书 和程序 发现很多时候就是在用进程 而不是线程, 现在在工作上想用来处理并发的问题 期间可能有进程的通信或者线程的通信 现在的问题是 用线程还是进程呢?

如果是进程 进程间的通信 是共享内存? fifo? pipe? 求高人指点
...全文
1195 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Athenacle_ 2011-06-02
  • 打赏
  • 举报
回复
诶。。先学操作系统把
vcf_reader 2011-06-02
  • 打赏
  • 举报
回复
什么时候吃干饭,什么时候吃稀饭,完全取决于自己
黑娃 2011-06-02
  • 打赏
  • 举报
回复
这看你的程序的规模,若是一个很大的系统,有多个模块合作,分工明确,当然是一个进程代表一个“大头”,可用消息,共享内存等通信;而每个进程肯定也有需要多线程的地方,线程之间通信就很直接了,比如同一个进程下的全局变量。
heartgoon2010 2011-06-02
  • 打赏
  • 举报
回复
关注中
leetoo_1977 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kingz_c1ear 的回复:]
引用 5 楼 q191201771 的回复:

我的意思是说用多线程不用多进程~~引用 2 楼 q191201771 的回复:
用线程~~~~


在处理并发上效果是一样的都能实现 那线程间的通信 要怎么实现呢?
[/Quote]

线程间的通信, 用 Mutex, 信号量, 消息队列, 共享内存......都能实现。关键是看你要做什么。具体情况具体分析。
Sun_Phoenix 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kingz_c1ear 的回复:]
引用 3 楼 keshuichonglx 的回复:

楼主是不是有点搞混了,进程和线程不是两个并列关系的概念,没有哪个程序是用线程不用进程的...


我的意思是处理并发的时候 因为我看代码和书 很多是用的进程来 处理的 所以很迷惑
[/Quote]

进程间通信用共享内存!效率高! 线程是共享进程的资源的 就是共享呀
KingZ_c1ear 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q191201771 的回复:]

我的意思是说用多线程不用多进程~~引用 2 楼 q191201771 的回复:
用线程~~~~
[/Quote]

在处理并发上效果是一样的都能实现 那线程间的通信 要怎么实现呢?
KingZ_c1ear 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

你打开一个程序就是打开一个进程,如果同一个程序中处理多任务,就用线程,线程比进程开销要小得多
[/Quote]

我看有些帖子是说 fork一个进程 比 create 一个线程要快 消耗小 因为 fork一个进程是在内核 线程是在用户层的 (unix/linux 下 我现在是在unix下开发。。。。)
就想叫yoko 2011-06-01
  • 打赏
  • 举报
回复
我的意思是说用多线程不用多进程~~[Quote=引用 2 楼 q191201771 的回复:]
用线程~~~~
[/Quote]
KingZ_c1ear 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 keshuichonglx 的回复:]

楼主是不是有点搞混了,进程和线程不是两个并列关系的概念,没有哪个程序是用线程不用进程的...
[/Quote]

我的意思是处理并发的时候 因为我看代码和书 很多是用的进程来 处理的 所以很迷惑
keshuichonglx 2011-06-01
  • 打赏
  • 举报
回复
楼主是不是有点搞混了,进程和线程不是两个并列关系的概念,没有哪个程序是用线程不用进程的...
就想叫yoko 2011-06-01
  • 打赏
  • 举报
回复
用线程~~~~
bdmh 2011-06-01
  • 打赏
  • 举报
回复
你打开一个程序就是打开一个进程,如果同一个程序中处理多任务,就用线程,线程比进程开销要小得多

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧