
并发和多线程
1024小豆子
这个作者很懒,什么都没留下…
展开
-
Java中的锁
Java中的锁锁是用来控制多个线程访问共享资源的方式,一个锁能够防止多个线程同时访问共享资源(有些锁也可以并发访问共享资源,读写锁)。java.util.concurrent.locks包中包含以下内容:Lock接口在Java SE5之前都是靠synchronized关键字实现锁功能,而之后并发包新增了Lock接口以及实现类,使用时需要显示地获取和释放锁。Lock 实现提供了比使用 synchro...原创 2018-03-15 22:19:37 · 292 阅读 · 3 评论 -
Java中的线程池
Java中的线程池使用线程池的优点:降低资源消耗、提高响应速度、提高线程的可管理性。线程池原理线程池处理流程:if (核心线程池没满){ //创建线程执行,执行完后会去工作队列中获取新的任务task.run()}else if(工作队列没满){ //将提交的任务存储在工作队列里}else if (线程池没满){ //创建线程执行任务}else { //其他策略处理无法执行的...原创 2018-03-14 10:51:24 · 260 阅读 · 0 评论 -
ConcurrentHashMap学习笔记
ConcurrentHashMap学习笔记简介ConcurrentHashMap是线程安全且高效的HashMap。我们都知道HashMap不是线程安全的,在并发编程中使用HashMap可能导致死循环。那么除了ConcurrentHashMap,还有Hashtable和Collections.synchronizedMap()方法都是线程安全的Map。Hashtable和Collections.sy...原创 2018-03-13 20:28:57 · 279 阅读 · 0 评论 -
ThreadLocal详解
概述 相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误...转载 2018-03-05 10:33:11 · 213 阅读 · 0 评论 -
Java整理(四)并发
线程简介 线程生命周期 l 新建状态: 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。 l 就绪状态: 当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。 l 运行状态: 如果就绪状态的线程获取CPU 资源,...原创 2017-11-14 21:59:56 · 1340 阅读 · 2 评论 -
CountDownLatch、CyclicBarrier和 Semaphore
CountDownLatch、CyclicBarrier和 Semaphore简介CountDownLatch、CyclicBarrier和 Semaphore是J.U.C中的三个辅助类,大致功能如下:CountDownLatch可以实现线程A等待其他多个线程执行完后再继续执行。CyclicBarrier可以实现一组线程等待至某个状态后再全部同时执行。Semaphore可以控同时访问的线程个数,比...原创 2018-04-17 11:23:06 · 287 阅读 · 0 评论