读书人

不太理解进程线程特来C版跪问!该

发布时间: 2012-02-14 19:19:19 作者: rapoo

不太理解进程,线程,特来C版跪问!!
最好讲通俗点,谢谢!!

[解决办法]
是不了解概念还是不了解这么进行多线程编程?:)
[解决办法]
进程和线程都是由操作系统所体现的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出 口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

[解决办法]
进程和线程的区别
http://blog.ednchina.com/beihai084/233649/message.aspx
[解决办法]
http://zhidao.baidu.com/question/6604759.html
程序包含了若干进程,每一个进程包含了一个或多个概念上知执行的线程。
[解决办法]
通俗篇:

被闹钟闹了一下(按了一下启动按钮),从美梦中苏醒(系统开始启动),大梦初醒,睁开双眼(操作系统启动成功),“大梦谁先觉,平生我自知”,洗漱一下(简单任务,单一进程,一个线程就搞定了)。

今天没什么急事,采用“非抢先式调度”(用WIN3.1)就可以了,上会网,看会书吧!

突然,电话铃声急响,还是用“抢先式调度”,马上接听电话,处理客户问题,客户利益高于一切(高优先级)。搞定,退出该线程,继续上网,看书。

突发奇想,脑(CPU)中又产生一“进程”,写篇线程相关的东西!

晚上下班后,一边刷锅,一边洗碗,一边听音乐,一边想MM。。。。(典型的多任务,当然也是多线程的了)

对于精力过于充沛的(多CPU的),还可以搞点其它的。。。

注意:安全第一,要是被车撞,肯定要死机,重启到好说,要是硬件坏了,那就。。

[解决办法]
楼上说的太搞笑了,支持一下
[解决办法]

探讨
通俗篇:

被闹钟闹了一下(按了一下启动按钮),从美梦中苏醒(系统开始启动),大梦初醒,睁开双眼(操作系统启动成功),“大梦谁先觉,平生我自知”,洗漱一下(简单任务,单一进程,一个线程就搞定了)。

今天没什么急事,采用“非抢先式调度”(用WIN3.1)就可以了,上会网,看会书吧!

突然,电话铃声急响,还是用“抢先式调度”,马上接听电话,处理客户问题,客户利益高于…

[解决办法]
支持通俗解释
[解决办法]
顺路学习下
[解决办法]
如果你编写了一个exe程序。

它静静的躺在你的硬盘上,这个时候,没有任何线程和进程跟它相关。

现在你鼠标双击它。这个时候,它就创建了一个进程,因为它需要获得资源。

程序启动了,进程也就随之建立了。但是不可能什么事情都不干。所以,在进程内部,又创建了若干个线程,用于程序内部各个逻辑之间的交流


我要上班
所以我要到公司
公司有很多部门
我在自己的部门里自己的位置上干活,其他的同事在他们的位置上工作。


[解决办法]
探讨
通俗篇:

被闹钟闹了一下(按了一下启动按钮),从美梦中苏醒(系统开始启动),大梦初醒,睁开双眼(操作系统启动成功),“大梦谁先觉,平生我自知”,洗漱一下(简单任务,单一进程,一个线程就搞定了)。

今天没什么急事,采用“非抢先式调度”(用WIN3.1)就可以了,上会网,看会书吧!

突然,电话铃声急响,还是用“抢先式调度”,马上接听电话,处理客户问题,客户利益高于…

[解决办法]
学习了!
[解决办法]
我写过一篇,不算详尽,你可以看看,应该能有点帮助。

http://blog.csdn.net/hairetz/archive/2009/06/19/4281931.aspx

把我说的这些点都有所理解,相信你在多线程和多进程的使用上,不会有太大困难了。
[解决办法]
探讨
通俗篇:

被闹钟闹了一下(按了一下启动按钮),从美梦中苏醒(系统开始启动),大梦初醒,睁开双眼(操作系统启动成功),“大梦谁先觉,平生我自知”,洗漱一下(简单任务,单一进程,一个线程就搞定了)。

今天没什么急事,采用“非抢先式调度”(用WIN3.1)就可以了,上会网,看会书吧!



突然,电话铃声急响,还是用“抢先式调度”,马上接听电话,处理客户问题,客户利益高于…


[解决办法]
路过,楼上已经讲很清楚了`
[解决办法]
《Windows核心编程》
[解决办法]
有没从理论上讲的资料?
[解决办法]
探讨
通俗篇: 
   
      被闹钟闹了一下(按了一下启动按钮),从美梦中苏醒(系统开始启动),大梦初醒,睁开双眼(操作系统启动成功),“大梦谁先觉,平生我自知”,洗漱一下(简单任务,单一进程,一个线程就搞定了)。 
   
      今天没什么急事,采用“非抢先式调度”(用WIN3.1)就可以了,上会网,看会书吧! 
   
      突然,电话铃声急响,还是用“抢先式调度”,马上接听电话,处理客户问题,客户利益高于一切(…

[解决办法]
大家好好讨论下,这个帮你推荐了。
[解决办法]
线程是真正执行的代码,是任务的执行者,进程是线程的容器。
一个进程里可以有多个线程。
[解决办法]
这个应该放在OS版。
[解决办法]
内核对象
[解决办法]
呵呵,有趣的解释。。。顶一下咯。。。
[解决办法]
WINDOW 核心编程
[解决办法]
探讨
如果你编写了一个exe程序。

它静静的躺在你的硬盘上,这个时候,没有任何线程和进程跟它相关。

现在你鼠标双击它。这个时候,它就创建了一个进程,因为它需要获得资源。

程序启动了,进程也就随之建立了。但是不可能什么事情都不干。所以,在进程内部,又创建了若干个线程,用于程序内部各个逻辑之间的交流


我要上班
所以我要到公司
公司有很多部门
我在自己的部门里自己的位置上干活,其他的同事在他们…

[解决办法]
比如早上的准备工作,从床上爬起来准备工作开始(进程建立),准备工作包括洗脸,刷牙,穿衣服,大便。。。这些活自己干当然可以完成(单线程),如果此时有很多人帮你做(多线程),一个人帮你穿衣服(建立一个线程),一个人帮你洗脸(建立一个线程),还有人帮你刷牙(建立一个线程),当然大便别人帮不了你,所以在进行准备工作的时候必须自己做(建立进程时已经带有了一个大便的线程,自己完成),刷牙洗脸穿衣服都需要大家一定的时间(线程占用资源),大家帮你做完工作之后就去忙自己的事情不再管你(各个线程结束),大便完成自己站起来(大便线程结束),所有事情完成后准备工作结束(进程结束)
[解决办法]
俺整个通俗版的

一个进程可与一个exe等同起来,当然这样说不准确,但便于理解.

一个进程可以包含一个或多个线程,一般一个进程至少有一个线程,称为主线程

可以把一个线程理解为一条生产线,每个生产线上可以同时进行不同的加工工序,同样,每个线程都可以同时执行一些代码

比如,你想计算从1加到200的结果,可以用两个线程来做,假设两个线程a和b,你可以在a线程中计算从1加到100的结果,同时 ,在b线程中计算从101加到200的结果,

注意是同时,这样比在一个线程中计算从1加到200的结果所花的时间要少了,这就是使用多线程的好处,并且主程序的主线程在a和b线程工作的时候,还可以干些其他

的事情

但是,计算的最终结果是要得到从1加到200的值,所以你要等到a和b两个线程都执行完毕后,在把俩个线程的计算结果加起来,这就涉及到线程同步的问题了.
[解决办法]
学习了,谢谢了!
[解决办法]
简单的说,进程就像是你开启了一个记事本程序,这个程序就是进程;线程则是这个记事本进程中同时运行的两个子程序,他们可能同时在向记事本中打印信息。
[解决办法]
学习学习····
[解决办法]
我也推荐《WIN32多线程程序设计》
[解决办法]
31楼说的不错,关键是这个东西能做什么用!
不过线程是windows下的概念,unix下没有线程,只有多进程。
[解决办法]
大家都讲得不错,,我加点


进程是OS分配资源的单位,,,线程不是OS分配资源的单位,

一个进程可以有多个线程,,但一个线程只能属于一个进程。

进程内的所有线程共享进程的资源。
------解决方案--------------------


学习学习
[解决办法]
MARK

[解决办法]

探讨
《Windows核心编程》

[解决办法]
探讨
通俗篇:

被闹钟闹了一下(按了一下启动按钮),从美梦中苏醒(系统开始启动),大梦初醒,睁开双眼(操作系统启动成功),“大梦谁先觉,平生我自知”,洗漱一下(简单任务,单一进程,一个线程就搞定了)。

今天没什么急事,采用“非抢先式调度”(用WIN3.1)就可以了,上会网,看会书吧!

突然,电话铃声急响,还是用“抢先式调度”,马上接听电话,处理客户问题,客户利益高于…

[解决办法]
一个程序至少有一个进程,一个进程至少有一个线程....
系统职位进程分配资源,一个进程内的线程共享此进程的资源。。。。。

[解决办法]
你开了一个qq,这时候打开了一个进程,
你和一群人聊天,从这个人跳到那个人,每个人都是一个线程来处理的.

qq申请了大量的资源,比如qq表情(比喻不对罗)
你可以对任何人使用qq表情,这代表线程是共享进程的内存和资源的
[解决办法]
楼上很多朋友都说的很好亚!版主应该了解的差不多了!我补充一下!

进程可以看作是要完成的一件事情,但一件事情又得又分多个步骤同时去完成:比如我现在要上网,先打开Music听歌,同时我还可以回我的邮件,还可以下载我要的东西........等等,这一系列的事情共同完成了我上网的需求!
进程是OS分配资源的单位,而线程则不是,

一个进程可以有多个线程,但一个线程只能属于一个进程。

进程内的所有线程共享进程的资源。
要知道的是:线程之间的信息交互较进程之间的信息交互容易多了!
[解决办法]
收藏之
[解决办法]
好贴,受教了!
[解决办法]
进程就是进程
线程就是线程
[解决办法]
good
[解决办法]
进程和线程都是(对程序代码的)CPU操作的一个抽象
区别是线程间公用地址空间
[解决办法]
....学习
[解决办法]
路过的
[解决办法]
进程是OS分配资源的单位,,,线程不是OS分配资源的单位,

这个受用
[解决办法]
进程是有地的农户,有自己的土地房子什么的,
单一线程的进程是中农,自己侍候自己的地。
多线程的进程里主线程是地主,其他线程是佃户,地主把土地分给佃户种,自己也有自留地。
[解决办法]

1. 进程是线程的容器,因此线程不能脱离进程而存在。
2. 进程中至少有一个线程(主线程),并且可以有多个线程。
3. 进程中的各线程,共享进程的相关资源,如数据段...

读书人网 >C语言

热点推荐