JUC
JUC
ITBOY_ITBOX
技术人生,管理天涯
展开
-
第9节 线程八锁
• 所有的非静态同步方法用的都是同一把锁——实例对象本身,也就是说如果一个实例对象的非静态同步方法获取锁后,该实例对象的其他非静态同步方法必须等待获取锁的方法释放锁后才能获取锁,可是别的实例对象的非静态同步方法因为跟该实 例对象的非静态同步方法用的是不同的锁,所以毋须等待该实例对象已获取锁的非 静态同步方法释放锁就可以获取他们自己的锁。• 所有的静态同步方法用的也是同一把锁——类对象本身,这两把锁是两个不同的对象,所以静态同步方法与非静态同步方法之间是不会有竞态条件的。• 加个普通方法后发现和同步锁无关。原创 2022-11-04 10:31:05 · 205 阅读 · 0 评论 -
第8节 线程池
第四种获取线程的方法:线程池,一个ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors 工厂方法配置。任务集时使用的线程)的方法。⚫ 为了便于跨大量上下文使用,此类提供了很多可调整的参数和扩展钩子(hook)。一个ExecutorService,可安排在给定的延迟后运行或定期执行的命令。⚫ 线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在。执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行。原创 2022-11-04 10:28:07 · 181 阅读 · 0 评论 -
第7节 Condition 控制线程通信
Condition 接口描述了可能会与锁有关联的条件变量。这些变量在用法上与使用Object.wait 访问的隐式监视器类似,但提供了更强大的功能。需要特别指出的是,单个Lock 可能与多个Condition 对象关联。为了避免兼容性问题,Condition 方法的名称与对应的Object 版本中的不同。⚫ Condition 实例实质上被绑定到一个锁上。⚫ 在Condition 对象中,与wait、notify 和notifyAll 方法对应的分别是await、signal 和signalAll。原创 2022-11-04 10:24:22 · 193 阅读 · 0 评论 -
第6节 Lock 同步锁
⚫ 在Java 5.0 之前,协调共享对象的访问时可以使用的机制只有synchronized 和volatile。Java 5.0 后增加了一些新的机制,但并不是一种替代内置锁的方法,而是当内置锁不适用时,作为一种可选择的高级功能。⚫ ReentrantLock 实现了Lock 接口,并提供了与synchronized 相同的互斥性和内存可见性。synchronized 提供了更高的处理锁的灵活性。原创 2022-11-04 10:22:10 · 207 阅读 · 0 评论 -
第5节 实现Callable 接口
⚫ Callable 接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。⚫ Callable 需要依赖FutureTask ,FutureTask 也可以用作闭锁。Java 5.0 在java.util.concurrent 提供了一个新的创建执行。线程的方式:Callable 接口。原创 2022-11-04 10:20:32 · 505 阅读 · 0 评论 -
第4节 CountDownLatch 闭锁
Java 5.0 在java.util.concurrent 包中提供了多种并发容器类来改进同步容器。⚫ CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作。⚫ 闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活。➢ 确保某个计算在其需要的所有资源都被初始化之后才继续执行;➢ 确保某个服务在其依赖的所有其他服务都已经启动之后才启动;➢ 等待直到某个操作所有参与者都准备就绪再继续执行。之前,它允许一个或多个线程一直等待。原创 2022-11-04 10:18:15 · 173 阅读 · 0 评论 -
第3节 ConcurrentHashMap
ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对 与多线程的操作,介于HashMap。时,ConcurrentHashMap 通常优于同步的HashMap, ConcurrentSkipListMap。通常优于同步的TreeMap。当期望的读数和遍历远远 大于列表的更新数时,CopyOnWriteArrayList。与Hashtable 之间。内部采用“锁分段” 机制替代Hashtable 的独占锁。优于同步的ArrayList。原创 2022-11-04 10:17:22 · 162 阅读 · 0 评论 -
第2节 volatile 关键字内存可见性
Java 提供了一种稍弱的同步机制,即volatile 变量,用来确保将变量的更新操作通知到其他线程。⚫ 类AtomicBoolean、AtomicInteger、AtomicLong 和AtomicReference 的实例各自提供对。作,对这些类型的数组提供了支持。将volatile 值、字段和数组元素的概念扩展到那些也提供原子条件更新操作的类。类的小工具包,支持在单个变量上解除锁的线程安全编程。每个类也为该类型提供适当的实用工具方法。操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并。原创 2022-11-04 10:13:38 · 335 阅读 · 0 评论 -
第1节 JUC介绍
JUC介绍原创 2022-11-04 10:06:19 · 162 阅读 · 0 评论