摘要: 简介 信号量,有时也被称为信号灯,是多线程模式下使用的一种设施,确保资源正确且合理的使用。 概念 分为两种,单值和多值,前者只能被一个线程获得,后者可以被多个线程获得 比如一个停车场,里面有三个停车位,这时来了五辆车,这时看门人只允许其中的三辆车进入,剩余的等待,在这里,车位属于资源,车辆属于线程, 阅读全文
posted @ 2019-10-21 09:49 kungFuPander 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 线程的同步 保证多线程安全访问竞争资源的一种手段,避免多个线程同时修改一个资源,导致资源的不正确性。 相关概念 : 什么是竞争资源 什么时候需要同步 要怎样进行同步 1. 将竞争资源标为private 2. 将涉及到静态资源的方法或块用synchrized关键字修饰 同步方法 模拟银行转账功能 vo 阅读全文
posted @ 2019-10-21 09:48 kungFuPander 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 锁 java5开始,java提供了锁对象,主要是在多线程的情况下对资源的封锁,保证多线程下资源的正确性,主要有三个接口。 1. Condition 将Object监视器方法拆分为截然不同的对象,将这些对象与任意Lock实现组合使用,为每个对象提供多个等待set 2. Lock 实现了比Sychron 阅读全文
posted @ 2019-10-21 09:47 kungFuPander 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 实现CallAble接口 实例: 阅读全文
posted @ 2019-10-21 09:47 kungFuPander 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 基本思想(对象池的思想) 内存中开辟一块空间,里面存放众多未死亡的对象,线程的调度由线程池管理,当有线程任务时,从池中取出一个,使用完毕再归还给线程池,这样避免了反复创建线程对象所带来的性能开销,节省了系统资源。 分类 1. cacheTheadPool (可变数量的线程池,缓存线程池) 缓存类型的 阅读全文
posted @ 2019-10-21 09:47 kungFuPander 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 线程休眠(sleep) 线程调度是java多线程的核心,只有良好的调度,才能充分发挥系统性能,提高程序执行效率。 程序员只能最大程度的影响线程执行的次序(cpu调度线程的可能性),并不能精准控制. 线程休眠是线程让出cpu最简单的做法之一,线程随后进入阻塞状态,直至苏醒,然后进入到可执行状态等待cp 阅读全文
posted @ 2019-10-21 09:46 kungFuPander 阅读(209) 评论(0) 推荐(0) 编辑
摘要: ``` public class SumTt{ public static void main(String[] args) { SumThread sm = new SumThread(); sm.start(); synchronized (sm) { System.out.println(Sy 阅读全文
posted @ 2019-10-21 09:45 kungFuPander 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 生命周期 新生 可运行(runable,running) 阻塞 死亡 相关方法 就绪: start() 挂起/唤醒 suspend/resume native wait/notify sleep 终止线程 stop() interrupt() 状态: boolean isAlive() boolea 阅读全文
posted @ 2019-10-21 09:44 kungFuPander 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 问题引出 为避免多线程对同一个对象进行操作,对数据造成的破坏。 问题解决 确定资源对象为同一个对象 同步和锁定 1. 非静态方法同步 只能同步方法,不能同步属性和类 只有拿到锁的线程才会执行方法,其余线程进入到阻塞状态 只针对同步方法,非同步方法不受锁的约束 如果持锁线程睡眠(sleep),其所持锁 阅读全文
posted @ 2019-10-21 09:44 kungFuPander 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 消息队列 生产消费 发布订阅 线程 发布订阅模型 实现 public class Box { private int index = 0; private int size = 100; // 阈值 private char[] chars; // 共享区 public Box(int size) 阅读全文
posted @ 2019-10-21 09:43 kungFuPander 阅读(511) 评论(0) 推荐(0) 编辑