
核心技术
文章平均质量分 61
weixin_43225491
这个作者很懒,什么都没留下…
展开
-
简单了解并发工具类CyclicBarrier的使用
1.介绍1.1.通过类名字名意思为循环屏障,因为它可以在等待的线程被释放之后重新使用.1.2.CyclicBarrier允许一组线程全部等待彼此达到共同屏障点,然后再执行线程中await()方法后的代码.1.3.CyclicBarrier提供了2个构造方法.//创建一个新的 CyclicBarrier,parties为设置的等待数,当线程的等待数即调用await()方法的次数==parties,它将跳闸,即线程再往下执行.CyclicBarrier(int parties)//创建一个新的 C原创 2021-01-25 10:56:34 · 148 阅读 · 1 评论 -
并发类CountDownLatch的使用.
介绍:1.countDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助.2.countDownLatch用给定的计数器初始化, await()方法用作阻塞,直到由于countDown()方法的调用而导致当前计数器达到零,之后所有的等待线程被释放,这是一个一次性的现象,计数器无法重置.如需重置计算的版本,可使用CyclicBarrier并发类.3.应用场景中,可作用于任务的拆分,将一个大的任务拆分成若干个小任务,每个小任务由一个线程执行,最后由大任务统一处理任务结果.原创 2021-01-04 11:51:25 · 191 阅读 · 0 评论 -
了解ReentrantReadWriteLock锁的使用
了解ReentrantReadWriteLock锁的使用简介读读共享写写互斥读写互斥简介1.ReentrantReadWriteLock分为读锁和写锁.2.读锁也称为共享锁,进行读相关操作,多个线程都可获取该锁.3.写锁也称为互斥锁,进行写相关操作,同一时刻只允许一个线程获取该锁.读读共享示例读读共享代码:/** * TODO * 类ReentrantReadWriteLock的使用:读读共享. * * @author 86182 * @version V1.0 * @since原创 2020-12-19 15:11:59 · 234 阅读 · 1 评论 -
了解Lock锁的使用
了解Lock锁的使用简单介绍lock锁的示例两个常见异常Condition等待通知机制的示例简单介绍1.在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥.2.在JDK1.5中新增了ReentrantLock类也能达到此效果,并且在扩展功能上也更加强大,比如多路分支condition通知等功能,而且在使用上比synchronized更加灵活.lock锁的示例代码示例:/** * 示例reentrantLock类的使用. */public class MySer原创 2020-12-12 13:47:37 · 526 阅读 · 2 评论 -
创建几种线程池的简单介绍
1.newFixedThreadPool,该线程池使用的是一个无界队列,即会往队列中不断增加任务,如果新增任务的速度大于处理任务的速度,那么有可能会造成内存耗尽. //创建方式 ExecutorService executorFixed = Executors.newFixedThreadPool(5);//查看源码从源码得知,该线程池用的LinkedBlockingQueue阻塞队列,该阻塞队列如果没有设置数量,默认为Integer.MAX_VALUE 核心线程数和最大线程数是一样的.原创 2020-12-04 21:14:09 · 238 阅读 · 1 评论 -
了解多线程中的死锁及减少死锁的方法
了解死锁死锁是如何产生的?通过控制锁顺序避免死锁尝试定时的锁死锁是如何产生的?介绍:1.当一个线程永远占有一个锁,而其他线程去尝试获取该锁,它们将永远被阻塞.2.如果一个线程A占有锁A时,想要获得锁B,同时,线程锁B占有锁B,想要获得锁A,两个线程将永远等待下去,这就导致了死锁的产生.3.示例:/** * TODO * 测试实体 * * @author 86182 * @version V1.0 * @since 2020-11-27 18:17 */public class原创 2020-11-27 20:13:39 · 312 阅读 · 2 评论 -
了解java中的volatile关键字的使用
了解java中的volatile关键字的使用volatile介绍代码示例volatile的可见性代码示例volatile不支持原子性volatile介绍1.volatile是java中的一个关键字,用于java多线程之间的可见性.2.volatile用于解决让线程强制性的从公共内存中读取变量的值,使被修饰的变量在多个线程中可见.3.volatile不支持原子性.4.volatile只用于修饰变量.代码示例volatile的可见性示例:1.没有volatile会发生什么问题呢?//实体p原创 2020-11-20 14:31:38 · 171 阅读 · 2 评论 -
了解java中的synchronized关键字
synchronized是java的一个关键字,用于java多线程中的同步.1.synchronized可修饰方法上,被修饰的方法为同步方法,多个线程访问同一对象的同步方法是同步执行的,即排队执行,哪个线程先执行该方法就持有该方法的所属对象的锁Lock,其他线程就处于等待状态。2.synchronized可修饰于代码块中,被修饰的代码块为同步代码块,多线程访问时,一个线程访问object的synchronized同步代码块,其他线程仍然可以访问该object对象中非synchronized(this)代原创 2020-10-30 13:55:08 · 367 阅读 · 1 评论