![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Concurrent
命运的左岸
日拱一卒,功不唐捐
展开
-
BlockingQueue
参考内容:[url]http://tool.oschina.net/apidocs/apidoc?api=jdk-zh[/url] 一、BlockingQueue 1.JDK-API说明 [code="java"] public interface BlockingQueue extends Queue [/code] BlockingQueue 支持两个附加操作的 Que...原创 2017-04-15 22:40:58 · 123 阅读 · 0 评论 -
容器集合
[align=center][size=large]容器[/size][/align] 一、同步类容器 1.概念 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。 复合类操作如: 迭代(反复访问元素,遍历完容器中所有的元素)、 跳转(根据指定的受损徐找到当前元素的下一个元素)、以及条件运算。 这些复合操作在多线程并发地修改容器时,可能会表现出意外的行为 ...原创 2017-08-19 18:18:02 · 99 阅读 · 0 评论 -
ThreadLocal
[align=center][size=large]ThreadLocal[/size][/align] 一、概念 ThreadLocal : 线程局部变量,是一种多线程间并发访问变量的解决方案。与其 synchronized 等加锁的方式不同, ThreadLocal 完全不提供锁,而使用以空间换时间的手段,为每个线程提供变量的独立副本, 以保障线程安全。 从性能上说, ...原创 2017-08-17 21:02:14 · 83 阅读 · 0 评论 -
多线程-单例模式
[align=center][size=large]单例模式[/size][/align] 一、概念 饿汉模式、懒汉模式 二、示例 [code="java"] package com.study.current.thread.day02; /** * 单例,多线程 */ public class InnerSingleton { private s...原创 2017-08-17 20:59:42 · 87 阅读 · 0 评论 -
线程间通信 wait notify
[align=center][size=large]线程间通信[/size][/align] 一、通信 线程通信概念:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更大,在提高CPU利用率的同事还会使开发人员对线程任务在处理的过程中进行有效的把控与监督。 二、 1.通过...原创 2017-08-15 22:12:11 · 81 阅读 · 0 评论 -
Volatile
[align=center][size=large]Volatile[/size][/align] 一、概念 volatile : 作用是保证变量在线程间的可见性 二、 在Java中,每一个线程都会有一块工作内存去,其中存放着所有线程共享的主内存中的变量值得拷贝。当线程执行时,他在自己的工作内存区中操作这些变量。为了存取一个共享的变量,一个线程通常先获取锁定并去清除他的内存工作...原创 2017-08-14 22:11:47 · 73 阅读 · 0 评论 -
Synchronized
[align=center][size=large]Synchronized[/size][/align] 一、锁重入 1.概念 关键字 synchronized 拥有锁重入功能,也就是在使用 synchronized 时,当一个线程得到了一个对象的锁后,再次请求此对象时可以再次得到该对象的锁。 2.示例 三个方法,依次调用,获取 第一个方法的锁,执行第二个方法时同样可以...原创 2017-08-13 18:46:23 · 71 阅读 · 0 评论 -
脏读(数据)
[align=center][size=large]脏读[/size][/align] 一、概念 数据写入与数据读出不一致 原因:未对写入与读出做整体性的处理,导致与预期结果不一致 二、例子 假设: 写入两个数据,第一个数据写入需4s,然后写入第二个数据 线程启动后,1s,需读取数据。 若:只对写进行 synchronized 处理,未对 读进行同样处理,就会出...原创 2017-08-13 17:47:54 · 306 阅读 · 0 评论 -
线程安全
[align=center][size=large]线程安全[/size][/align] 一、线程安全 线程安全概念: 当多个线程访问某一个类(对象或方法)时,这个类(对象或方法)都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。 二、同一个对象的锁 1.对同一个对象的对象锁 synchronized synchronized 锁是对象级别的 [c...原创 2017-08-12 20:55:07 · 72 阅读 · 0 评论 -
Lock
Lock 一、 1. [code="java"] public class ThreadSynchronizedDemo { public static String name = "zhang" ; public static Integer age = 25 ; /** * @param args */ public static ...原创 2017-04-19 22:39:24 · 89 阅读 · 0 评论 -
ExecutorService
ExecutorService 1. 线程池的意义: 维护一定数量的线程, 线程执行任务的开销,不在于任务执行的时间,而是线程的创建以及销毁 所以,创建线程后,在线程完成任务后,不让线程立即销毁,而是保持线程的活跃性 当再有任务来时,让活着的线程继续工作 [code="java"] ThreadPoolExecutor( int corePoolSize, // 核心线程...原创 2017-04-17 22:32:07 · 133 阅读 · 0 评论 -
CountDownLatch
一、CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重...原创 2017-04-16 12:38:36 · 78 阅读 · 0 评论 -
ConcurrentHashMap
一、 [table] |hashMap|线程不安全| |hashTable|线程安全,对整个Map进行锁处理| |concurrentHashMap|线程安全,只对操作的数据进行锁操作| [/table]原创 2017-04-16 11:01:15 · 84 阅读 · 0 评论 -
Queue
[align=center][size=large]Queue[/size][/align] 一、Queue ConcurrentLinkedQueue 高性能 BlockingQueue 阻塞队列 二、 ConcurrentLinkedQueue 是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能, 通常 ConcurrentLinkedQu...原创 2017-08-21 21:26:32 · 87 阅读 · 0 评论