方龙的博客


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索
close

线程池

发表于 2017-01-17   |   分类于 Java SE
线程池带来的好处: 降低资源消耗 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度 当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性 线程是稀缺资源,使用线程池可以统一分配、调优和监控。 实现原理当提交一个新任务到线程池时,线程池的主要处理流程 判 ...
阅读全文 »

JUC集合框架(2): ConcurrentHashMap

发表于 2017-01-16   |   分类于 JUC集合框架
12public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable ConcurrentHashMap相当于线程 ...
阅读全文 »

JUC集合框架(1): 概述

发表于 2017-01-16   |   分类于 JUC集合框架
JUC包中集合类可以分为3部分:List和Set、Map以及Queue。 List和SetJUC集合包中List和Set的实现类有: CopyOnWriteArrayList CopyOnWriteArrayList相当于线程安全的ArrayList,它实现了List接口。 CopyOnWrit ...
阅读全文 »

Lock: 并发工具类-Exchanger

发表于 2017-01-15   |   分类于 Java锁
Exchanger是一个用于线程间协作的工具类,可以进行线程间的数据交换。它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据。这两个线程通过exchange(V x)方法交换数据,如果第一个线程先执行exchange(V x)方法,它会一直等待第二个线程也执行exchange(V x)方法, ...
阅读全文 »

Lock: 并发工具类-Semaphore

发表于 2017-01-15   |   分类于 Java锁
Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过re ...
阅读全文 »

Lock: 并发工具类-CyclicBarrier

发表于 2017-01-15   |   分类于 Java锁
CyclicBarrier可以让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,所有被屏障拦截的线程才会继续运行。 CountDownLatch和CyclicBarrier的区别 CountDownLatch的作用是允许1或N个线程等待其他线程完成执行;而CyclicBa ...
阅读全文 »

Lock: 并发工具类-CountDownLatch

发表于 2017-01-15   |   分类于 Java锁
在JDK并发包提供了几个常用的并发工具类:CountDownLatch、CyclicBarrier、Semaphore提供了一种并发流程控制的手段,而Exchanger工具类提供了在线程间交换数据的一种手段。 CountDownLatch允许一个或多个线程等待其他线程完成操作。 CountDownL ...
阅读全文 »

Lock: Condition

发表于 2017-01-15   |   分类于 Java锁
任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait()、wait(long timeout)、notify()、notifyAll(),这些方法与synchronized关键字配合,可以实现等待/通知机制。 Condition的作用是对锁进行更精 ...
阅读全文 »

Lock: LockSupport

发表于 2017-01-15   |   分类于 Java锁
LockSupport工具类是用来创建锁Lock和其他同步类的基本线程阻塞原语。通过park()和unpark()方法来阻塞和唤醒线程。 LockSupport中的私有成员变量UNSAFE和parkBlockerOffset12private static final sun.misc.Unsafe ...
阅读全文 »

Lock: 读写锁ReentrantReadWriteLock

发表于 2017-01-15   |   分类于 Java锁
之前提到的ReentrantLock是排他锁,也就是同一时刻只允许一个线程进行访问。而读写锁在同一时刻可以允许多个读线程进行访问,但是在写线程访问时,所有的读线程和写线程均会被阻塞。 读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大的提升。 读写锁保 ...
阅读全文 »
1…161718…26
方龙

方龙

梦想还是要有的,万一实现了呢

257 日志
33 分类
161 标签
GitHub
© 2016 - 2018 方龙
由 Hexo 强力驱动
主题 - NexT.Mist