private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000),new ThreadPoolExecutor.Ca...
分类:
其他好文 时间:
2014-10-31 10:03:30
阅读次数:
268
LinkedBlockingQueue是一个链表实现的阻塞队列,在链表一头加入元素,如果队列满,就会阻塞,另一头取出元素,如果队列为空,就会阻塞。
LinkedBlockingQueue内部使用ReentrantLock实现插入锁(putLock)和取出锁(takeLock)。putLock上的条件变量是notFull,即可以用notFull唤醒阻塞在putLock上的线程。takeLo...
分类:
数据库 时间:
2014-09-29 12:56:10
阅读次数:
327
常识,之前有的没搞清楚,导致写代码时不少疑惑。
比较典型的同步例子,用了两个Condition,notEmpty和notFull,分别对应两个lock,takeLock和putLock。查看take的代码:
E x;
int c = -1;
final AtomicInteger count = this.count;
final AtomicInteger takeLock = thi...
分类:
数据库 时间:
2014-09-21 01:53:59
阅读次数:
533
LinkedBlockingQueue是一个阻塞的、线程安全的、由链表实现的双向队列,和ArrayBlockingQueue一样,是最普通也是最常用的阻塞队列。现基于LinkedBlockingQueue源码自我实现一个单向的、简化版的LinkedBlockingQueue.package com....
分类:
数据库 时间:
2014-09-15 22:43:19
阅读次数:
391
1 package cn.itcast.servlet; 2 3 import java.util.concurrent.LinkedBlockingQueue; 4 import java.util.concurrent.locks.Condition; 5 import java....
分类:
其他好文 时间:
2014-09-11 20:46:22
阅读次数:
166
这篇文章来说说稍微复杂一些的LinkedBlockingQueue。LinkedBlockingQueue使用一个链表来实现,会有一个head和tail分别指向队列的开始和队列的结尾。因此LinkedBlockingQueue会有两把锁,分别控制这两个元素,这样在添加元素和拿走元素的时候就不会有锁的...
分类:
数据库 时间:
2014-08-11 14:54:02
阅读次数:
258
package com.ctl.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Random;
import java.util.concurrent.LinkedBlockingQueue;
import java.ut...
分类:
数据库 时间:
2014-08-10 01:47:39
阅读次数:
308
public static int num=0;
public static ThreadLocal> queueHoder = new ThreadLocal>();
private static String driver;
private static String url;
private static String username;
private static String...
分类:
数据库 时间:
2014-08-09 21:36:49
阅读次数:
490
atitit. java queue 队列体系and自定义基于数据库的队列总结o7t
1. 阻塞队列和非阻塞队列 1
2. java.util.Queue接口, 1
3. ConcurrentLinkedQueue 2
4. BlockingQueue阻塞队列 2
4.1. 1. ArrayBlockingQueue 3
4.2. 2. LinkedBlockingQueue 3...
分类:
数据库 时间:
2014-07-30 20:47:04
阅读次数:
510
import java.util.Queue;import java.util.concurrent.LinkedBlockingQueue;public class Consumer extends Thread { private String product; private Queue st...
分类:
编程语言 时间:
2014-07-27 23:25:39
阅读次数:
258