注册 登录
编程论坛 操作系统内核开发

请教线程问题

wahchun 发布于 2010-07-01 03:16, 1522 次点击
请问单线程与多线程技术各有什么优势与不足,在什么情况下应该使用单线程而非多线程,同样在什么情况下应该使用多线程而非单线程?
9 回复
#2
chengstone2010-07-01 10:33
多线程很有用
把执行程序比做做一件事情
单线程就是一个人做,多线程就是一个团队合作
单线程自然要把所有的事情包揽。而多线程呢,每个线程分工明确各干一部分,自然效率就提高了。
假如一个程序在做一件事情,如果十分占据CPU,并且是单线程的话,恐怕来不及响应用户的输入。而如果多线程呢,假设是两个线程,一个用来处理事情,一个用来响应用户输入,是不是很方便。

以上只是浅显的说明了一下,很多书上都有相关概念的。
#3
malpower2010-07-02 15:57
单线程感觉粒度大了点,我也在做内核,刚完成线程创建的系统调用。
#4
chengstone2010-07-02 16:37
楼上的线程采用的是什么思想呢?  LINUX的线程思想么?
#5
韩明海2010-07-02 17:09
如果多个任务都要同一个数据,而且比较频繁的话就要用单线程,用多线程就要加互斥锁,很容易乱锁
如果需要同时处理几件事,之间关系不是很强,可以用多线程,例如聊天,你写信息的同时也可以去接收别人的信息,这是发送和接收就是两个线程
#6
malpower2010-07-02 19:13
我只是把线程看作共享资源的进程而已。
#7
qq9806727922010-07-06 15:12
头大啊
#8
zisefengye2010-07-07 22:14
首先要明白什么是进程,然后再谈线程。进程是不活跃的,是线程的容器,也就是说同一进程中的所有线程都运行在同一地址空间,都在进程的上下文中。这个可以看看windows核心编程。
#9
malpower2010-07-10 00:40
我参阅过那本著作,但我的观念有些不一样。
呵呵。
可能我是个NC货。
呵呵。
在我的观念里,进程是程序的动态事例,主线程就是进程的具体体现,其他线程从属于主线程。
呵呵,
我很 脑残落。。。。

#10
nongzhaobo2012-04-24 11:49
我的两线程...
1