08 2020 档案

CountDownLatch、CyclicBarrier、Semaphore 的用法
摘要:1、CountDownLatch可以实现类似计数器的功能,可以控制线程完成指定的任务数。比如: 二、CyclicBarrier(回环栅栏-等待至barrier状态再全部同时执行) 可循环使用的屏障,职责时让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达时,屏障才会开门,所有被屏 阅读全文

posted @ 2020-08-21 16:34 希望者 阅读(219) 评论(0) 推荐(0)

阻塞队列
摘要:阻塞队列主要是指在多线程对队列的获取元素和添加元素这两个操作的一个限制,当阻塞队列为空时,从队列中获取元素的操作将会被阻塞,当阻塞队列是满时,往队列中添加元素的操作将会被阻塞。 用途:阻塞队列在某些条件下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒。 优点:我们不需要关心线程的挂起 阅读全文

posted @ 2020-08-21 10:58 希望者 阅读(202) 评论(0) 推荐(0)

线程池
摘要:线程池的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后线程创建启动这些任务,如果线程数量超过最大数量的范围则超出范围的线程需排队等候,等其他线程执行完毕,再从队列中取出任务来执行。 特点:线程复用、控制最大并发数量、管理监控线程。 优点: 1、降低资源消耗,通过复用线程降低线程的创建 阅读全文

posted @ 2020-08-21 09:41 希望者 阅读(209) 评论(0) 推荐(0)

CAS机制
摘要:CAS机制的全称Compare-And-Swap,是一种乐观锁,原子类的底层实现机制就是CAS机制。它的功能是判断某个位置的是否是预期值,如果是则修改,这个过程是原子的。即线程在写数据到主内存时,会拿原读取到的主内存中的值的副本与主内存做比较,如果相等(也就是期望值)时,才将要修改的值写入到主内存。 阅读全文

posted @ 2020-08-20 16:41 希望者 阅读(291) 评论(0) 推荐(0)

java锁
摘要:一、乐观锁 乐观锁是一种乐观思想,即认为读多写少,每次拿数据时候都认为别人不会修改,所以不会上锁,但是在更新数据时候会判断在此期间是否有人更新过。java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入 值是否一样,一样则更新,否则失败。 二、悲观锁 悲观 阅读全文

posted @ 2020-08-20 15:55 希望者 阅读(105) 评论(0) 推荐(0)

Volatile关键字
摘要:一、Volatile的用法 Volatile是java虚拟机提供的轻量级的同步(锁)机制。它可以保证共享变量的可见性以及禁止指令重排,但是不保证原子性。 二、理解可见性、禁止指令重排、不保证原子性 1、可见性:意思是当一个线程 修改一个共享变量时,另外一个线程能读到这个修改的值。这得认识ava内存模 阅读全文

posted @ 2020-08-15 17:56 希望者 阅读(133) 评论(0) 推荐(0)

导航