+ -
当前位置:首页 → 问答吧 → ??急!!什么是线程

??急!!什么是线程

时间:2011-05-02

来源:互联网

网上的文章都看了,还是没明白。

比如打开一个记事本,就打开了进程notepad.exe.我的疑问是,那么如果线程notepad.exe有多个线程的话,这多个线程如何才能协调工作,使我们用记事本的时候不会出现都做不协调呢

作者: fosbin   发布时间: 2011-05-02

我也不知道,我只知道线程是共享一个内存区,一个进程有三个线程的话,每个线程会占CPU的三分之一,速度慢了,但是进程却百分之百占用CPU,因为进程间不停切换,但线程却不是,这个我理解不了= =

作者: A328240784   发布时间: 2011-05-02

谢谢,有多了一点头绪

作者: fosbin   发布时间: 2011-05-02

这个怎么跟你讲呢。。。线程其实和进程差不多。你可以这么理解一般的系统和程序
一台机器上跑着n个进程,每个进程都有一个进程控制块PCB,记录了它自己用的数据啊 地址空间啊,毛毛多的信息,然后每个进程下面又有多个线程再跑,这些线程共享自己进程的数据等信息。
举个例子,你看你打开个IE浏览器,网页刷新的时候并不是一点一点从上往下 或者从左往右出来吧,你可以认为是多个线程合作的结果,比如下面有的线程传输图片,有的传输视频 有的传输文字(尽管这么讲不确切)。线程的好处在于,某个线程出问题了,比如你有个网页图片死活下不下来,不影响其他线程的工作,文字 其他视频 图片该怎么下还怎么下。 如果一个进程是个单线程的。那么出现这种问题,你只能等他把这个图片下载下来才能看到后面要下载的文字啊之类。
线程又被细分为重量型的 中量型的 还有轻量级的线程
轻量级的线程,可能就是一个无限循环等待的函数,比如消息接收函数
中量型的。。。不太清楚
重量型的线程,你可以理解为单线程的进程。


至于你说的协调工作,建议你看下操作系统,锁,信号量,邮箱等等机制都是用来协调同步的
在概念上,我从来都是模模糊糊。。。只能给你将成这个样子,欢迎楼下大牛们拍砖~~~

作者: wangzaiwei2006   发布时间: 2011-05-02

较低级的语言中,比如asm或C,线程之间的协调一般要靠你自己来做,你必须决定

用什么协调方式,如何协调。

作者: mydo   发布时间: 2011-05-02