Delphi 进程和线程的理解

1、进程是程序在计算机中执行的一次活动,当一个程序运行的时候就启动一个进程,当启动一个进程的时候操作系统就会为它分配独立的地址空间(内存空间),应用程序就在在独立的地址空间内运行;程序(代码+数据结构+算法;PE结构)可执行文件的一次实例。

2、多进程是相互独立的,都处于运行状态时,便有多个任务执行,并且一个进程挂掉不会影响其他进程(互不干扰)。

3、一个程序至少有一个主进程,一个进程至少有一个线程,线程相当于是进程的子集,多个线程共享其进程资源;进程拥有大于等一的线程,且只有一个主线程负责操作Ui界面,内核线程(轻量级线程)和用户线程

4、临界区不是内核对象,不用系统调用,不用进入操作系统核心,属于用户层的操作;

创建线程会耗资源,所以引入线程池,

结构体不能释放,用到共同的公共单元,如果释放其他资源就会报错。

5、如果线程有大量任务,会影响性能,以此操作系统需要来回切回

6、thread创建(构造函数、析构函数),线程的id,线程的挂起,线程的优先级,线程的等待,唤醒,挂起;

7、进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,而线程之间没有独立的地址空间,一个线程死掉就等于整个整个进程死掉,所以多进程比多线程更健壮,但在进程切换时耗费资源较大效率要差一些,但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

8、Application.ProcessMessages的作用是让Application去处理消息队伍中的消息;

9、接收消息处理完以后不做耗时操作,否则时间超过300毫秒以后再次发消息procedure TSingleEntrust.WM_PROCCINGEND(var msg: TMessage);

begin

ShowMessage('测试成功:' + PChar(msg.LParam));

end;

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值