thread基础

1. 实现多线程1.1 创建多线程的方式1.1.1 实现Runnable接口12345678public class RunnableThread implements Runnable { @Override public void run() { System.out.println('用实现Runnable接口实现线程'...

并发编程

threadlocal详解

0. 简介: ThreadLocal 并不解决线程间共享数据的问题 ThreadLocal 通过隐式的在不同线程内创建独立实例副本避免了实例线程安全的问题;每个线程持有一个 Map 并维护了 ThreadLocal 对象与具体实例的映射,该 Map 由于只被持有它的线程访问,故不存在线程安全以及锁的问题 ThreadLocalMap 的 Entry 对 ThreadLocal 的引用为弱引...

并发编程

AQS应用

1. CountDownLatchlatch 的中文意思是门栓、栅栏,CountDownLatch 基于 AQS 的共享模式的使用 1.1 使用例子 假设我们有 N ( N > 0 ) 个任务,那么我们会用 N 来初始化一个 CountDownLatch,然后将这个 latch 的引用传递到各个线程中,在每个线程完成了任务后,调用 latch.countDown() 代表完成了一个任务...

并发编程

阻塞队列BlockingQueue

1. BlockingQueue由来在生产者-消费者模式中,为了使生产者消费者解藕,需要一个存放元素的容器,使生产者可以只关心往队列里添加元素下,消费者只关系从队列中取出元素进程处理。 而且这个队列必须要满足两点: 线程安全 缓冲池空了,我们需要阻塞消费者,唤醒生产者;当缓冲池满了,我们需要阻塞生产者,唤醒消费者 JDK 为此设计了 阻塞队列(BlockingQueue),并提供了几个基...

并发编程

AQS详解

1. AQS简介 抽象同步队列,实现同步器的基础组件,如常用的ReentrantLock、Semaphore、CountDownLatch等。 AQS定义了一套多线程访问共享资源的同步模板,解决了实现同步器时涉及的大量细节问题,能够极大地减少实现工作。 2. 结构继承关系AQS属性AQS重要方法Node属性ConditionObject属性ConditionObject重要方法123456...

并发编程

线程池详解

1. 什么是线程池2. ThreadPoolExecutor源码2.1 继承关系 Executorexecute(Runnable): 用来执行传进去的任务ExecutorServicesubmit()、invokeAll()、invokeAny() 以及shutDown() 等AbstractExecutorService基本实现了ExecutorSe...

并发编程

本站由 卡卡龙 使用 Stellar 1.27.0 主题创建

本站访问量 次. 本文阅读量 次.