进程
进程是计算机中正在运行的程序,是操作系统分配资源、管理任务的基本单位
- 每个进程都有自己的地址空间、内存和数据栈
- 进程可以独立与逆行,也可以互相通信协作
- 进程之间也可以互相创建,而操作系统会通过调度算法来为每个进程分配资源或者在进程之间切换
线程
线程则是操作系统的最小执行单位,同时也是程序的最小执行单元
- 一个进程可以拥有多个线程,并且每个线程共享进程的内存和资源,但是拥有各自的执行栈
- 线程在进程内部并发执行,每个线程都可以执行不同的任务来提高程序的性能
- 线程之间并发访问共享资源时可能会发生数据竞争,进而引发进程安全问题
进程安全问题:
当一个线程正在访问资源时,另一个线程可能无法正确访问该资源,从而导致程序出现问题。因此,在多线程编程中,需要使用同步机制来确保对共享资源的安全访问,以避免数据竞争和潜在的进程安全问题的发生。
进程、线程关系:
“一图流”
进程线程关系:
-
隶属关系:线程是在进程内部创建和运行的,因此每个线程都隶属于一个进程。一个进程可以包含一个或多个线程。
-
资源共享:线程共享所属进程的内存空间和资源。可以访问相同的变量、对象和文件等资源,无需进行额外的数据传输或拷贝。
-
并发执行:多个线程可以在同一个进程中并发执行。使得程序可以同时处理多个任务,提高了程序的性能和响应性。
-
通信与同步:线程之间可以通过共享内存或特定的同步机制进行通信和同步。线程可以协作完成任务,共享数据。
-
生命周期管理:进程和线程都有自己的生命周期。进程的生命周期通常比线程长,当进程终止时,它所包含的所有线程也会被终止。线程的生命周期由线程的创建、执行和终止组成