进程与线程
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
互斥体速度更快,但是只能在同一个进程上下文空间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)