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

多线程(2)

三、线程状态【理解】

static void sleep(long ms):让当前线程处于休眠状态,休眠的单位是毫秒(ms),处于休眠状态的线程进入有限
期等待状态 。sleep方法会让当前线程释放cpu,但是不释放锁标记。
2. void join() : 让某 线程加入到自身任务中,在哪个线程中调用其他线程join方法,则代表此线程让步其他线程
优先执行,此线程从而进入无限期的等待状态。
例如:在主线程中main函数中: t.join() ; 代表主线程让步于t线程执行
四、线程同步【重点】
1. 临界资源:多线程并发时,被多个线程共享的同一个对象,称为临界资源。
2. 原子操作:不可以分割的多步操作,被视为一个整体,其执行顺序和步骤不能被打破。
3. 线程同步:多线程并发访问时,为了保证临界资源的正确性,从而不破坏操作中的原子操作。
(保护原子操作不能被破坏)
4. 线程同步的两种方式:
(1) 同步代码块:对临界资源对象进行加锁。
a. 定义位置:方法内部
b. 利用 synchronized 对临界资源加锁
c. 语法: synchronized(临界资源对象){
// 原子操作
}
d. 执行的原理:当线程获取临界资源的锁标记时,锁标记空闲,则能获取该对象的锁标记,获取锁标记之
后,可以执行同步代码块{}中的代码,而且只有当{}中所有的内容全部执行完,才释放拥有的锁标
记;但是当线程获取临界资源对象的锁标记时,锁标记被其他线程占用,则此线程进入阻塞状态
(Blocked状态),只有当其他线程释放锁标记,此线程获取锁标记,才结束阻塞状态,同时获取cpu,可以执行{}中 的内容。
2) 同步方法:

a. 用 synchronized修饰 方法:被 synchronized修饰的方法称为同步方法

b. 语法:

修饰符 synchronized 返回值类型 方法名(形参列表)throws 异常{

// 原子操作

}

c. 同步方法等价于 同步代码块:是对当前对象进行加锁

synchronized(this){

// 原子操作

}

http://www.cnnetsun.cn/news/116046.html

相关文章:

  • WebSocket 对比 MQTT通信优势
  • 基于springboot面料花型试衣系统
  • 域名被污染是什么意思?还能不能继续使用?
  • Python大数据基于深度学习的音乐推荐系统-250326--论文
  • Python大数据影评情感分析可视化及推荐系统的设计与实现_u5ck1y17_论文
  • AI Agent设计模式大揭秘:9种架构让你从编程小白变身架构师!
  • Python大数据基于Spark的南昌房价数据分析系统的设计与实现_45i0b357_论文
  • 9 个降AI率工具,自考人必备的降重神器!
  • 9 个降AI率工具,自考人必备!
  • 旅行记录应用新建旅行 - Cordova OpenHarmony 混合开发实战
  • 9 个降AI率工具推荐,继续教育学生必备
  • Java八股文(Java基础面试题)
  • 邦芒忠告:职场中没有好人缘的10种人
  • 基于Spring Boot人才招聘管理系统
  • 拒绝“魔法值”注入:手把手教你实现 Spring Boot 高性能枚举校验注解 @InEnum
  • 国内容易上手的claudecode一键配置指南
  • 复原IP地址
  • Redis 发布订阅
  • JQuery支持WebUploader完成百万文件断点续传的原理?
  • Vue3如何结合组件实现大文件分片的并行上传优化?
  • 类型分布统计-Cordovaopenharmony多维分析实战
  • 四时四名,一山万象:朝鲜金刚山的锦绣风姿
  • 基于Spring Boot的果蔬销售系统
  • Scala Collection(集合)
  • 介观交通流仿真软件:DynusT_(11).交通事件管理
  • django基于Python天气分析系统
  • python基于大数据的分析长沙旅游景点推荐系统
  • 基于Django的学分管理系统
  • 广度优先遍历与最短路径
  • 通信系统仿真:通信系统基础理论_(11).光通信技术