当前位置: 首页 > news >正文

进程与线程

进程:现代的操作系统都是多任务操作系统,一个任务就是一个进程,进程是程序的运行状态,在单核CPU的情况下,OS会通过切分CPU时间片的形式来保证多任务的执行(实际上还是串行,只不过每个任务分配的时间极少,轮换执行,导致在人们感觉上好像是同时执行的),多核的情况下,任务就真的是并行执行了

线程:程序最小的运行单位,同一个进程下的多个线程会共享进程内存空间,同时也会有自己独立的内存空间,线程的切换开销要小于进程,因为进程是整体程序的切换,而线程只是进程内部的切换

线程运行状态:启动,准备就绪,运行,阻塞,死亡状态,调用start方法进入启动状态,启动后获得各种资源分配进入就绪状态,获得CPU执行时间进入运行状态,sleep或者yield,wait进入阻塞状态,运行结束进入死亡状态

线程资源共享:可通过声明static变量或线程成员变量进行线程资源共享,static变量属于类所有,为多个实例所共有,在程序运行期间,内存里就一份,多个线程操作该变量时会共享,实现runnable接口,声明成员变量,启动多个线程也会共有这些成员变量,因为多个Thread跑的就是同一个实例

线程之间的协作主要是通过sleep方法(让渡CPU,不释放锁,阻塞调用者线程),yield方法(让渡CPU,不释放锁,阻塞调用者线程),wait方法(让渡CPU,释放锁,阻塞调用者线程),notify/notifyAll唤醒被阻塞线程(wait挂起的线程)

死锁:多个线程互相持有对方想要的锁,解决方法:排列资源的优先级,就是在竞争同一把锁的时候,加锁的顺序保持一致

http://www.hskmm.com/?act=detail&tid=39306

相关文章:

  • 解决 Windows 下 Claude 通过 cmd/powershell 运行出错失去响应的问题
  • # Ubuntu 根目录空间扩展操作手册(基于 RAID 关联磁盘 /dev/sdb2)
  • 25.10.25随笔NOIP模拟赛总结
  • 013的加密世界权威指南_第二部分
  • Perplexity Comet AI浏览器「等待网络链接」解决方案
  • Redis 持久化 内存模型 - 指南
  • 新地球
  • 2025 年 10 月商用厨房设备,酒店厨房设备,大型厨房设备厂家最新推荐,聚焦高端定制需求与全案交付能力
  • zr模拟赛day8T2
  • 251026
  • 2025 年 10 月食堂厨房设备厂家最新推荐,聚焦资质、案例、售后的食堂场景深度解读
  • embedding
  • 2025 年 10 月不锈钢厨房设备厂家最新推荐,产能、专利、环保三维数据透视
  • 2025 年 10 月餐饮厨房设备厂家最新推荐,实力品牌深度解析采购无忧之选!
  • DINO版本进化
  • 基于深度学习神经网络协同过滤模型(NCF)的视频推荐体系
  • sometime some time sometimes
  • 关于容斥原理
  • 可变字符串
  • 欧拉定理
  • 给安卓设置背景色的时候保持默认按钮样式(关于使用setBackgroundColor导致丢失默认按钮样式的问题)
  • 分片上传与断点续传实现详解
  • 2025 年 10 月展示柜厂家最新推荐,技术实力与市场口碑深度解析!
  • 手把手在 Linux 上安装 Docker 与 Docker Compose(包含 Ubuntu、CentOS 等 11 个发行版)
  • 2025 年 10 月展示柜厂家最新推荐,精准检测与稳定性能深度解析!
  • L
  • 数据处理方法汇总
  • 一些疑问
  • 2025 年 10 月外墙涂料厂家最新推荐,聚焦高端定制需求与全案交付能力
  • 2025年10月长白山亲子酒店推荐榜:四季主题与温泉度假对比排行