多线程编程

发布时间 2023-10-06 18:25:07作者: Alpha205

多线程编程与资源同步

1. 基础

  进程:一个进程代表计算机中实际运行的一个程序,在现代计算机操作系统的保护模式下,每个进程都具有自己独立的进程地址空间和上下文堆栈;进程并不负责执行进程代码,只是为程序提供一个大环境容器,进程中的实际执行体是线程(Thread),因此在一个进程中至少得有一个线程,这个线程被称为主线程;

  线程是进程中实际执行代码的最小单元,具体由操作系统安排调度,决定其合适启动,运行,暂停,消亡;

  在Windows系统下,当一个进程存在多个子线程的时候,如果主线程执行结束,这时子线程(支线程)即使还没有执行完相应的代码,也会退出。因此在Windows下设计多线程程序的时候,需要确保在子线程执行完之前,主线程保持不退出;

  Linux系统下,主线程退出,不会影响子线程的执行,子线程还会继续运行,但是此时的进程会变成僵尸进程。在Linux下设计多线程程序时,应该避免这种情况;