进程与线程

1. 进程是什么?

进程是处于执行期的程序以及相关资源的总称

2.一个进程里都包含什么?

程序的代码段,全局变量数据段,处理器状态,内存地址空间,打开的文件,挂起的信号,进程栈,内核内部数据结构

3. java如何停止线程

(1). 使用中断,给一个线程发送中断命令,线程检测中断可以停止。(2) 使用stop命令,线程会立马停止 (3)抛异常停止线程执行

4. 线程是什么?

在进程中活动的对象,几乎不拥有资源,属于进程,操作系统调度最小单元。

线程包括程序计数器,进程栈,寄存器,信号,线程局部变量

5. 进程vs线程

对linux,线程只是进程间共享资源的一种手段

6. java线程如何同步

(1)synchronized,ReentrentLock锁同步(2)volatile,(3)原子类automatic(4)阻塞队列(5)静态变量,不能多线程同时并发读取到同一个值就行,bool静态变量就可以实现同步。

7. 进程如何通信?

为多进程程序提供了多种通信,同步的方式,常用的通信有

(1)pipe管道,(2)FIFO(命名管道),(3)信号,(4)mmap(内存映射),(5)消息队列,(6)共享内存,(7)Socket

pipe管道特点:半双工,数据只能在一个方向上流动,只能在父子进程之间通信。

fifo管道特点:是全双工的,不相关的进程也能交换数据。

mmap将文件的内容映射到进程地址空间,通过对这段内存的读取和修改,实现对文件的读取和修改。

共享内存(常用)是什么?

共享内存允许两个或多个进程共享一给定的存储区。数据不需要再进程和内核之间复制,所以这是速度最快的IPC。共享内存同步可以使用信号量

socket是什么?

操作系统为应用程序与TCP/IP协议交互提供的接口,可以区分不同进程间的网络通信和连接。

8. 信号量是什么?

信号量实际上是同步原语,常用于共享资源的同步存取,如共享内存。

9. 文件锁是什么?

对文件进行锁操作,提供共享锁和互斥锁功能,可作为进程间同步手段

10. 多线程如何协作,同步,互斥

(1) Mutex(互斥体)(2)读写锁(3)条件变量静态变量,boolean(4)信号量(不建议使用)

互斥体和信号量的区别,互斥体是一个轻量级的互斥信号量,初始值为1,信号量为n

互斥体速度更快,但是只能在同一个进程上下文空间

 

posted @ 2022-09-04 19:19  my日常work  阅读(21)  评论(0编辑  收藏  举报