免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7035 | 回复: 3
打印 上一主题 下一主题

[函数] 请问:linux下的子进程与线程的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-16 21:37 |只看该作者 |倒序浏览
如果用fork()函数创建一个子进程,那此时的父、子进程是不是可以通过时间片互相
切换?
如果用pthread_create()函数创建一个线程,请问线程与子进程有什么区别吗?
是不是可以使用子进程的程序也可以使用线程?同样,是不是可以使用线程的程序也可以使用子进程?

论坛徽章:
0
2 [报告]
发表于 2011-06-16 22:08 |只看该作者
POSIX线程和Linux线程还是有差别的吧,是两个实现,POSIX线程独立于Linux的。
如果你用Linux线程,内核为每个线程维护一个线程号,线程号与进程号相等的那个是主线程,主线程就是向前兼容的进程,fork调用会创建一个主线程,clone则可以创建主线程或从线程,是Linux独有的,有不同的共享选项可供选择,这种方式就可以为线程创建线程或创建进程。
不过我看man手册上说Linux线程已经废弃了,不知道是不是我的英语理解有问题。上面说创建大量线程时POSIX线程的性能更好,所以建议使用Posix线程。Posix线程提供了几种受限的调度方式,既然用Posix线程就别弄这么麻烦了吧,先fork,再pthread_create,复杂没好处。

论坛徽章:
0
3 [报告]
发表于 2011-06-17 08:25 |只看该作者
线程和进程最大的区别是地址空间是否共享

论坛徽章:
1
射手座
日期:2014-08-04 16:49:43
4 [报告]
发表于 2011-06-17 14:12 |只看该作者
楼上的就是重点了,  至于进程 线程都复制了哪些东西, 你可以参考APUE里面的介绍。。。有一张的某页单独讲到了
其实线程也是轻量级进程,他们也都是按时间片来切换的,理论上讲 线程的切换速度要比进程快一些,但是进程又比线程安全性高一些。。

用线程还是用进程这个取决于你的用途,线程最大的好处就是,共享存储空间,那么意味着你可以不在用一大堆的方法去做进程间通信, 但是同步需要做好。。。

但是权威部门 贝尔实验室(UNIX LINUX发源地),官方的说法还是尽量多用多进程,而要避免多线程。。。

以上仅仅是我的个人观点 欢迎指正
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP