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;