1、什么是进程?
当运行一个程序的时候,操作系统会给该程序创建一块内存,用来存放 代码、运行中的数据、执行任务的主线程。这样一个运行环境就是进程。
2、什么是线程?
线程是进程的最小单位,进程将任务分为很多细小的任务并创建线程,使用多线程并行处理提高运算效率。
3、进程和进程、进程和线程之间的关系:
有关进程:
1、进程和进程之间完全隔离,互补干扰,一个进程崩溃也不会影响到其他的进程。
2、进程之间可以通过 进程通道IPC 进行数据传输
3、当一个进程关闭后,哦做系统会回收改进程的内存空间
有关进程与线程:
1、一个进程中有多个线程,每个线程并行执行不同的任务。
2、一个线程执行出错,会导致该进程崩溃。
3、同一进程下的线程之间可以传递通信和共享数据。
4、进程之间通信的方式:
管道通信
:就是操作系统在内核中开辟一段缓冲区,进程1可以将需要交互的数据拷贝到这个缓冲区里,进程2就可以读取了消息队列通信
:消息队列就是用户可以添加和读取消息的列表,消息队列里提供了一种从一个进程向另一个进程发送数据块的方法,不过和管道通信一样每个数据块有最大长度限制共享内存通信
:就是映射一段能被其他进程访问的内存,由一个进程创建,但多个进程都可以访问,共享进程最快的是IPC
方式信号量通信
:比如信号量初始值是1,进程1来访问一块内存的时候,就把信号量设为0,然后进程2也来访问的时候看到信号量为0,就知道有其他进程在访问了,就不访问了socket
:其他的都是同一台主机之间的进程通信,而在不同主机的进程通信就要用到socket的通信方式了,比如发起http请求,服务器返回数据