java语言
java语言相关知识内容笔记
北冥有大大鱼
这个作者很懒,什么都没留下…
展开
-
深入剖析线程池ThreadPoolExecutor 原理
一: 线程池定义: 1. 为什么会出现线程池? 频繁创建线程是一个比耗时且有一定的资源开销,故引入了线程池,将线程通过池子的管理,进行重复利用。 2. 如果创建线程: a ) 通过Executors辅助类创建线程池的实例: 它默认提供了4种线程池策略: newFixedThreadPool(int nThreads) 创建一个固定数量的线程池,它的缓存任务队列的大小是Int 的最大值,同时拒绝策略采用抛出异常 RejectedExecutionException Executors 返回的线程原创 2020-07-07 10:04:23 · 384 阅读 · 0 评论 -
CyclicBarrier 的用法及使用场景
CyclicBarrier : 作用:一个同步辅助工具,它允许一组线程全部进行相互等待彼此到达公共的屏障点后,相互等待的线程会进行并发执行后续的代码逻辑 它同时实现了可循环的屏障操作,并且在屏障释放前可以执行额外的一个操作。 应用场景: 非常适合固定大小的线程的程序中使用,这些线程间或彼此等待。 实际项目场景的应用: 数据的采用多线程的组装 使用方式: 1. 创建好 Cyclic...原创 2020-06-19 15:30:28 · 1751 阅读 · 4 评论 -
Java CountDownLatch 使用及应用场景
CountDownLatch 作用:它一个同步辅助工具,它允许一个或多个线程去等待被其它的多个线程执行的一组操作,当所有的线程操作完成后,去等待的线程才允许继续往下执行 应用场景:比如:主线程 要等待所有的子线程完成一些特定点的操作之后,主线程才往下执行。 如数据的拼接,组装,一个复杂耗时的计算,最终要汇总执行的结果。 使用方式: 1. 在一组执行操作的多个线程中,当完成了指定操作后,就调用 CountDownLatch 实例的 downCount() 方法,...原创 2020-06-19 09:55:57 · 635 阅读 · 0 评论 -
wait , notify, sleep 方法实现细节和区别比较
关于 wait 方法和 notify 方法实现细节主要是根据 官方的javaDoc 文档和 openJDK 源码中得出,jdk 源码地址: http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/30fb8c8cceb9/src/share/vm/runtime/objectMonitor.hpp 1. wait() 方法 1.1 调用wait 方法时,必须当前线程持有该对象的monitor 1.2 对象调用wait 方法后,它会将当前线程放入该对原创 2020-06-15 10:48:10 · 289 阅读 · 0 评论