社区
网络通信/分布式开发
帖子详情
本人一直对线程的概念不是很懂,那位高手可否指点一下
keke001
2004-04-08 06:39:16
本人一直对线程的概念不是很懂,那位高手可否指点一下
...全文
97
3
打赏
收藏
本人一直对线程的概念不是很懂,那位高手可否指点一下
本人一直对线程的概念不是很懂,那位高手可否指点一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
keke001
2004-04-17
打赏
举报
回复
真是非常感谢
cjf1009
2004-04-10
打赏
举报
回复
进程、线程和通信
(2)进程执行过程中的控制线索叫作线程(Thread), 程序计数器的状态, 以及CPU中其它寄存器的状态显示了该控制线索.
(1)一个正在执行的程序叫作进程(process), 进程要占用系统资源.
(3)计算机内部就是一个小的网络系统, 各部件通过接口电路(寄存器)与通信总线相连, 在控制器的控制下协调一致, 彼此相互通信.
进程:多任务系统的产物
很久很久以前,是没有进程这个东西的。那时候的操作系统只能把要做的工作排好队,做完这件再做下一件,最多也就加个优先级,哪个关系好就先做哪一个。于是那些想一边听歌一边写程序的程序员们便不干了,开始修理那个操作系统,使之能同时运行多个程序。于是进程就出现了:它就是一个程序在数据集合上的一次执行。
因为突然变得僧多粥少了,所以每个进程只好做一些额外的事情:在别人使用之前把自己的东西收拾好,下次轮到自己时再摆出来。为了保存这些额外的东西,进程的结构也发生了相应的变化。一个进程被分成三大部分:代码段、数据段和PCB(进程控制块) 。
在多出来的PCB中,我们保存了如下信息:
l 进程标识符(操作系统用于识别进程的唯一标识)
l 处理机状态(主要是通用寄存器,指令寄存器,PSW和用户栈指针)
l 进程调度信息(状态、优先级,被阻塞原因和其他一些乱七八糟的东西)
l 进程控制信息(同步信息、代码段和数据段的信息、资源清单和指向下一个PCB的指针)
操作系统正是通过PCB来管理这多个进程。在这样的系统里,进程既是操作系统独立调度和分派的基本单位,又是一个可拥有资源的独立单位。
线程:进程的再分身
好了,现在程序员可以一般听歌一边写程序了。可是不幸的或者说是幸运的,新的问题出现了。如果多个进程间使用很多相同数据的话,实在是太浪费了。我们当然不能允许这样的事情持续下去,所以线程出现了。同一个进程下可以拥有多个线程,它们共享这个进程的资源,它们之间的切换也不再需要PCB,而只需要极少一点资源就可以了。在这样的操作系统里,线程变成了系统调度和分派的基本单位。
简单的说进程和线程有如下不同:
l 进程可以拥有资源,线程共享进程拥有的资源
l 进程间的切换必须保存PCB,同个进程的多个线程间的切换不用那么麻烦
最后我们以一个实例来作为本文的结束:
当你在一台PC上打开两个QQ时,每一个QQ是一个进程;而当你在一个QQ上和多人聊天时,每一个聊天窗口就是一个线程。
http://www.delphibbs.com/keylife/iblog_show.asp?xid=1193
wnhoo
2004-04-08
打赏
举报
回复
从进程开始说起:
进程通常被定义为一个正在运行的程序的实例,它是资源分配的单位;
线程没有很确切的定义,它是CPU进行调度的单位。
进程是不活泼的。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,该线程负责执行包含在进程的地址空间中的代码。当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程。
线程由两个部分组成:
一是操作系统用来管理线程的内核对象,内核对象也是系统用来存放线程统计信息的地方。另一个是线程的堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。
去看看Delphi附带的多线程例子吧,很简单也很经典。
编程资料 -C# 多
线程
编程资料 - 多
线程
C#多
线程
编程实例实战作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996单个写入程序/多个阅读程序在.Net 类库中其实已经提供了实现,即System.Threading.ReaderWriterLock 类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#的多
线程
编程。问题的提出所谓单个写入程序/多个阅读
发布本人整理的面试问题大全,为准备找工作的同行们尽一份力 希望大家多补充或回答
发布本人整理的面试问题大全,为准备找工作的同行们尽一份力 希望大家多补充或回答
发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!
主 题: 发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答! 作 者: top1000 (天天向上) 等 级: 信 誉 值: 98 所属社区: .NET技术 C# 问题点数: 0 回复次数: 184 发表时间: 2005-9-14 21:13:57 1. C#中 property 与 attribute的区别,
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望
高手
帮忙! 5:呵呵,来推荐
一下
我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA请教怎
网络通信/分布式开发
1,594
社区成员
32,947
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章