------多线程
IluckySi
知无不言,言无不尽!
展开
-
CyblicBarrier使用
闲话少说直接上demopackage com.ilucky.test.jdk.util.concurrent;import java.util.Date;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/** * n个线程互相等待, 任何一个线程完成之前,原创 2017-05-11 10:47:30 · 379 阅读 · 0 评论 -
线程池之状态参数
package com.ilucky.test.jdk.util.concurrent2;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import ja原创 2017-09-20 19:14:00 · 1046 阅读 · 0 评论 -
线程池之饱和策略
package com.ilucky.test.jdk.util.concurrent2;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import ja原创 2017-09-20 19:11:33 · 1313 阅读 · 0 评论 -
PriorityQueue优先队列实现原理
转载: 一、什么是优先队列优先队列不是按照普通对象先进先出原FIFO则进行数据操作,其中的元素有优先级属性,优先级高的元素先出队。本文提到的PriorityQueue队列,是基于最小堆原理实现。需要注意:PriorityQueue继承了AbstractQueue没有实现BlockingQueue接口,所以没有take阻塞方法。二、什么是最小堆最小堆是一个完全二叉树,所谓的完全二叉树是一种没有空节点转载 2017-07-19 17:59:41 · 442 阅读 · 0 评论 -
线程安全之如何实现多线程下的自增安全
package com.ilucky.test.jdk.util.concurrent;import java.util.concurrent.CountDownLatch;import java.util.concurrent.atomic.AtomicInteger;/** * 线程安全: 当多个线程访问某个类时, 这个类始终都能表现出正确的行为, 那么就称这个类是线程安全的。 * @au原创 2017-05-21 19:05:58 · 4717 阅读 · 0 评论 -
Sychronized学习之死锁
package com.ilucky.test.jdk.util.concurrent;/** * 死锁 * 如下这段代码会引起死锁,两个线程会互相等待对方释放锁。 * 一般发生的原因是: 某个线程拿到锁后, 因为一些异常没有释放锁。 * 避免死锁的方法: * 避免一个线程同时获取多个锁。 * 避免一个线程同时占用多个资源。 * 尝试使用定时锁,使用tryLock(timeout)来替原创 2017-05-21 18:20:13 · 432 阅读 · 0 评论 -
多线程等待(超时)/通知的应用场景-数据库连接池
闲话少说,直接上代码:package com.ilucky.test.jdk.util.concurrent.pool;import java.sql.Connection;import java.util.LinkedList;/** * 数据库连接池 * @author IluckySi * */public class ConnectionPool { private Lin原创 2017-05-24 18:18:04 · 1040 阅读 · 0 评论 -
多线程之等待超时模式
package com.ilucky.test.jdk.util.concurrent;/** * 等待/通知机制. * 等待超时模式. * @author IluckySi * */public class WaitNotifyTest2 { private static Object lock = new Object(); public static void main原创 2017-05-24 15:31:46 · 1361 阅读 · 0 评论 -
多线程之等待通知机制
闲话少说,直接上代码:package com.ilucky.test.jdk.util.concurrent;import java.util.Date;/** * 等待/通知机制. * 等待/通知机制,是指一个线程A调用了对象O的wait()方法进入等待状态,而另一个线程B调用了O对象的notify() * 或者notifyAll()方法, 线程A收到通知后从对象O的wait()方法返回,进原创 2017-05-24 14:25:23 · 331 阅读 · 0 评论 -
Semaphore使用之公平锁
闲话少说,直接上demo:package com.ilucky.test.jdk.util.concurrent;import java.util.Date;import java.util.concurrent.Semaphore;/** * 公平锁和非公平锁: * 默认使用非公平锁,因为非公平锁的的效率要高于公平锁。但是非公平锁会导致"线程饿死"的问题. * 所以, 要结合具体的业务场原创 2017-05-12 14:56:34 · 1229 阅读 · 2 评论 -
CountDownLatch使用之等待超时
闲话少说,直接上demo:package com.ilucky.test.jdk.util.concurrent;import java.util.Date;import java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;/** * cdl.await(long, TimeUnit);等待超时,针对原创 2017-05-12 14:41:48 · 27653 阅读 · 1 评论 -
CylicBarrier使用之barrierAction优先执行
CylicBarrier使用之barrierAction优先执行原创 2017-05-12 12:18:41 · 888 阅读 · 0 评论 -
CyblicBarrier使用之BrokenBarrierException
BrokenBarrierException原创 2017-05-12 11:30:26 · 945 阅读 · 0 评论 -
Semaphore使用
semaphore使用原创 2017-05-12 11:19:22 · 222 阅读 · 0 评论 -
CountDownLatch使用
CountDownLatch简单使用原创 2017-05-11 10:19:55 · 265 阅读 · 0 评论