摘要: synchronized 加在成员方法上,锁的是this 对象,对于调用者来说,锁的是同一个对象、谁先拿到锁谁先执行。 synchronized加载静态方法上,所的是类对象。静态方法类加载的时候就有了。同多个对象通用一把锁。 1、情况1 @Slf4j(topic = "c.Number") /** 阅读全文
posted @ 2022-09-27 21:43 iyandongsheng 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 问题 多线程分时系统是存在线程安全问题的,如下例子: 两个线程分别对同一个变量(初始值 = 0)做循环自增和自减操作各50000次,观察结果,并不等于初始值。 public class 分时系统线程安全问题 { static int a = 0; public static void main(St 阅读全文
posted @ 2022-09-27 20:41 iyandongsheng 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 所谓优雅停止,即即将在停止的线程足够的时间完成善后工作,而不是直接杀死线程。假设此时某线程正在独占资源(占有锁),突然对线程的终止,会导致其占有的资源无法得到释放,其他线程将无法获取该资源。 package cn.yds.juc.learning; import lombok.extern.slf4 阅读全文
posted @ 2022-09-27 14:45 iyandongsheng 阅读(27) 评论(0) 推荐(0) 编辑
摘要: package cn.yds.juc.learning; import lombok.extern.slf4j.Slf4j; /** * @author yds * @Date 2022/9/21 19:25 * @Description ThreadDemo4 * @Version 1.0.0 * 阅读全文
posted @ 2022-09-27 11:34 iyandongsheng 阅读(71) 评论(0) 推荐(0) 编辑
摘要: package cn.yds.juc.learning; import lombok.extern.slf4j.Slf4j; /** * @author yds * @Date 2022/9/26 15:54 * @Description ThreadDemo6 * @Version 1.0.0 * 阅读全文
posted @ 2022-09-27 11:10 iyandongsheng 阅读(54) 评论(0) 推荐(0) 编辑