QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 816|回复: 14

大家来谈谈多线程的使用……

[复制链接]
发表于 2004-7-14 03:22:18 | 显示全部楼层 |阅读模式
一直很迷惑,相对于单线程,多线程到底有什么好处呢?又会有什么弊端?什么情况下用多线程会更好?
发表于 2004-7-14 08:37:29 | 显示全部楼层
比较好同步吧,进程同步比较麻烦
回复

使用道具 举报

发表于 2004-7-14 10:31:11 | 显示全部楼层
不存在比单线程如何,应该是相对于多进程如何
如果你的程序可以不需要多线程或多进程,当然是尽可能不用。

好处
1。使用thread不需要使用复杂的进程间通信。
2。thread间的切换比进程间的要轻。

坏处
一个thread死掉了会连带进程,也就是其它线程一块完蛋。
回复

使用道具 举报

发表于 2004-7-14 10:37:08 | 显示全部楼层
Linux 2.6以前线程的实现是和进程一样的。
回复

使用道具 举报

发表于 2004-7-14 10:44:11 | 显示全部楼层
做一个游戏,播放背景音乐的时候似乎要用到多线程,至少java里是这样的,不然播放背景音乐的时候,整个都停在那里了,直到音乐放完
回复

使用道具 举报

发表于 2004-7-14 10:58:35 | 显示全部楼层
掌握一个原则就好:

如果你需要同时作N件事情,用thread.
如果你可以不用thread,就绝对不要用thread.

thead编程入门相对简单,随便找几个pthread文档看看就行了,但是深入就不容易了,尤其遇到了锁,互斥等等话题,如果结合socket编程去看,就更麻烦了。
回复

使用道具 举报

发表于 2004-7-14 11:03:54 | 显示全部楼层
cjacker,听说Linux 2.6以前线程的实现基本上是和进程一样的,是真的吗?
回复

使用道具 举报

发表于 2004-7-14 11:36:32 | 显示全部楼层
看看robert love新写的Linux Kernel Development,里面对一些常识性的东西讲的还是很清楚的。

我记得应该是:
thread是share 内存空间的process
回复

使用道具 举报

发表于 2004-7-14 11:38:57 | 显示全部楼层
那Linux 2.6以后呢?是不是有什么新的变化?
回复

使用道具 举报

发表于 2004-7-14 15:23:28 | 显示全部楼层
[quote:197ba30482="cjacker"]掌握一个原则就好:

如果你需要同时作N件事情,用thread.
如果你可以不用thread,就绝对不要用thread.

thead编程入门相对简单,随便找几个pthread文档看看就行了,但是深入就不容易了,尤其遇到了锁,互斥等等话题,如果结合socket编程去看,就更麻烦了。[/quote]
犇人就是不一样,学习
回复

使用道具 举报

 楼主| 发表于 2004-7-15 00:58:29 | 显示全部楼层
呵呵,我想了一下:
到底要不要用多线程,一个标准就是:哪种能更充分地利用CPU资源……
所谓的充分利用CPU资源……我也说不清
不过我知道什么情况下就算没有充分利用CPU资源:
还有需要处理的任务没有分配CPU资源去处理,而同时CPU却有资源闲置……
回复

使用道具 举报

发表于 2004-7-15 08:23:24 | 显示全部楼层

分配一个线程是要占用资源的,所以就我来说,能少用尽量少用。
回复

使用道具 举报

发表于 2004-7-15 10:17:16 | 显示全部楼层
[quote:878a6eda4d="sjinny"]呵呵,我想了一下:
到底要不要用多线程,一个标准就是:哪种能更充分地利用CPU资源……
所谓的充分利用CPU资源……我也说不清
不过我知道什么情况下就算没有充分利用CPU资源:
还有需要处理的任务没有分配CPU资源去处理,而同时CPU却有资源闲置……[/quote]
一般来说资源密集型的操作,例如同时进行多个网络通讯,这时候各个处理并不大量使用cpu,大部分时间处于等待状态,使用thread就比较自然(但有方法用单线程来实现)
如果是CPU密集型的操作,例如进行数学运算,除非使用SMP,否则使用多线程不但不能提高速度反而会降低速度。
回复

使用道具 举报

 楼主| 发表于 2004-7-15 17:59:03 | 显示全部楼层
回复

使用道具 举报

发表于 2004-7-15 19:08:38 | 显示全部楼层
多线程使用特别是在编程逻辑较复杂时,同步互斥问题非常让人头疼,况且posix并不是一个很好的实现了线程规范的标准,所以少用为好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 20:44 , Processed in 0.048445 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表