社区
Delphi
帖子详情
关于线程和进程
bobit
2002-12-03 01:22:49
对进程的理解就是运行着的程序,那么我们用Dephi新建一个Application后直接运行是不是就生成了一个进程?
那么线程呢,我一直都只知道他是CPU运行程序的最小单位,那么上一个进程是否在运行时有几个线程呢,到底是哪几个
请朋友说说它们二者的根本区别
...全文
50
14
打赏
收藏
关于线程和进程
对进程的理解就是运行着的程序,那么我们用Dephi新建一个Application后直接运行是不是就生成了一个进程? 那么线程呢,我一直都只知道他是CPU运行程序的最小单位,那么上一个进程是否在运行时有几个线程呢,到底是哪几个 请朋友说说它们二者的根本区别
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnsuyong
2002-12-04
打赏
举报
回复
呵呵,Delphi也送了WinSight。
yczyk
2002-12-03
打赏
举报
回复
好象有一个查询线程的微软的东东叫什么Spy的,就那什么间谍来着!学VC的人真是幸福啊,什么东西信手拈来,这Spy也是VC赠品!
bobit
2002-12-03
打赏
举报
回复
还有要补充的吗
cnsuyong
2002-12-03
打赏
举报
回复
哈喽啊,饭已OK啦,快去MIXI吧。
祝大家好心情!
学习中...
alphax
2002-12-03
打赏
举报
回复
不是的
bobit
2002-12-03
打赏
举报
回复
哦,但我刚刚看到有朋友说Delphi Application 在运行时产生三个线程啊:
Application
MainForm
输入法
alphax
2002-12-03
打赏
举报
回复
自己写代码解决
bobit
2002-12-03
打赏
举报
回复
在多线程同步执行时如果同时访问临界区那肯定会产生冲突啊,是自己写代码解决还是Delphi IDE提供呢
alphax
2002-12-03
打赏
举报
回复
对于共享冲突,需要你自己写代码解决
alphax
2002-12-03
打赏
举报
回复
我也在学习这个,我把我的理解说说:
我听说进程是一个容器,是一个操作系统的核心对象,但是它不是执行的代码,但是它指向一个应用程序。线程才是干活的东西。只有进程分配后,主线
程运行后,才会创建Application对象。至于其他线程,需要你显式地创建他们。如果你的代码(包括控件的代码)没有创建线程,那么你的程序只有一个
线程,就是主线程:program文件的begin .. end. 如果没有特别的需要,尽量避免使用第二个线程,线程会增加程序的复杂性,难于调试。但是,编制服务器程序的时候,线程通常又很难避免
bobit
2002-12-03
打赏
举报
回复
那么共享时会有冲突啊,是自己写代码解决还是Delphi IDE提供呢
happyzsl
2002-12-03
打赏
举报
回复
http://www.csdn.net/develop/article/15/15271.shtm进程和线程,线程和消息队列,他们之间确实是有包含的关系。 如果让我按大小排序,我会排成象题目的那样。( 不过大概有人会说,消息队列怎么能跟进程、线程混为一谈呢?)
简单的来说,什么是进程?什么是线程?打个比方,你的程序要执行,操作系统就会把你的 exe 文件加载到内存中,那就生成一个进程了(当然还包含分配到的资源等); 对于线程,你可以理解成是一个程序里的不同部分,这有点类似函数,所不同的是各个线程是同时执行的。 例如,你的主线程创建了另一个副线程,那么这两个线程是同时在工作的,不存在 调用 - 返回 的概念。 一个进程里可以有多个线程在执行,称为执行实例。
根据我的理解,进程应该是比较大的概念, 一个进程开始时至少会有一个主线程 ( 即主执行实例 ) ,这是在系统加载你的程序的时候所创建的主执行流程。一般对外部来说只能看到进程,例如在 Win2000 的任务管理器里面查看到的只有进程 ( Process ) 而已。
用 Ctrl + Shift + ESC 可以在 Win2000 里调出任务管理器。
而消息队列则是与线程 ( Thread ) 相关的,换句话说,一个线程只能有一个消息队列 ( queue ) 与之相对应。 这跟之前说的有点不同,一个进程里面可以有多个线程;但是一线程里面就不能超出一个消息队列 ( Win98 里面甚至可以没有消息队列 )。
消息队列是在什么时候生成的呢? 在 Win2000 里面,从一开始创建线程就已经有了。( 在 Win98 里,我估计是在创建过窗口之后,留给你去证实 )
说了半天,可能一些刚入门的朋友还不知道什么是消息队列呢? 其实,Windows 操作系统是一个基于事件驱动的系统。它把握诸如鼠标,键盘输入等东西化为事件代号,发送到你的程序的消息队列里面去,你的程序则每次提取一个事件,根据事件的性质执行相应的操作,不断循环而已。
微软提倡编程人员使用事件驱动的编程方法。 你也可以向自己线程的消息队列里发送假消息,自己骗自己也是可以的 ( 虚伪 ) !使用 PostThreadMessage 函数即可。
编出多线程的程序其实并不难,难点其实在于线程同步 ( 线程间协调工作 ),下面的源程序正是为了简单介绍多线程编程的。
SilveryFox
2002-12-03
打赏
举报
回复
dll的运行即使线程
happyzsl
2002-12-03
打赏
举报
回复
新建一个Application后,Application是一个进程,并且拥有一个主线程,你可以自己再新建多个线程,共用进程的资源
Java
线程
和
进程
区别
什么是
进程
,什么是
线程
?
进程
:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。
线程
:是
进程
的一个执行单元,是
进程
内科调度实体。比
进程
更小的独立运行的基本单位。
线程
也被称为轻量级
进程
。 一个程序至少一个
进程
,一个
进程
至少一个
线程
。
进程
线程
的区别 1、地址空间:同一
进程
的
线程
共享本
进程
的地址空间,而
进程
之间则是独立的地址空间。 2、...
java
线程
和
进程
的区别_Java中的
线程
和
进程
比较
1.
进程
和
线程
的区别通俗一点说,
进程
就是程序的一次执行,而
线程
可以理解为
进程
中的执行的一段程序片段。用一点文词说就是,每个
进程
都有独立的代码和数据空间(
进程
上下文);而
线程
可以看成是轻量级的
进程
。一般来讲(不使用特殊技术),同一
进程
所产生的
线程
共享同一块内存空间。同一
进程
中的两段代码是不可能同时执行的,除非引入
线程
。
线程
是属于
进程
的,当
进程
退出时该
进程
所产生的
线程
都会被强制退出并清除。
线程
占用的资...
线程
和
进程
的区别
1.
进程
(Process)
进程
是计算机中运行的一个程序的实例。它是操作系统分配资源和调度的基本单位,每个
进程
都有自己的内存空间、文件描述符和其他资源。每个
进程
都有独立的地址空间。
进程
之间的通信需要通过
进程
间通信(IPC)机制,例如管道、信号量或消息队列。
进程
是重量级的,创建和销毁成本较高。2.
线程
(Thread)
线程
是
进程
中的一个执行单元,是CPU调度的基本单位。一个
进程
可以包含多个
线程
,它们共享
进程
的资源。
线程
之间共享同一个
进程
的内存空间和资源(例如堆和全局变量)。
C语言笔试
线程
和
进程
的区别,
进程
和
线程
的定义和区别
进程
和
线程
的定义和区别1、
进程
定义
进程
:是具有一定独立功能的程序关于某个数据集合上的一次进行活动,是系统进行资源分配和调度的一个独立单位。2、
线程
定义
线程
:是
进程
的一个实体,是cpu调度和分派的基本单位,他是比
进程
更小的能够独立运行的基本单位,
线程
自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源。一个
线程
可以创建和撤销拎一个
线程
。区别:1、一个
线程
只能属于一个
进程
,而一个
进程
可以拥有多个...
线程
和
进程
的关系和区别
线程
和
进程
的关系和区别 一、
线程
的定义
线程
是
进程
的基本执行单元,一个
进程
的所有任务都在
线程
中执行。
进程
至少要有一条
线程
。 程序启动默认开启一条
线程
,这条
线程
被称为主
线程
或UI
线程
。 二、
进程
的定义
进程
是指在系统中正在运行的一个应用程序。 每个
进程
之间是独立的,每个
进程
均运行在其专用的且受保护的内存中。 三、
进程
和
线程
的区别和联系
进程
是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而
线程
是
进程
中的一部分,
进程
包含多个
线程
在运行。 地址空间和其他资源:
进程
间相互独立,同一
进程
的各
线程
间共享
Delphi
5,930
社区成员
262,937
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章