什么叫线程安全?线程安全就是每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的。 线程安全就是说多线程访问同一代码,不会产生不确定的结果。并行和并发区别1、并行是指两者同时执行一件事,比如赛跑,两个人都在不停的往前跑;2、并发是指资源有限的情况下,两者交替轮流使用资源,比如...
分类:
数据库 时间:
2016-01-13 19:19:36
阅读次数:
224
LinkedBlockingQueue的put,add和offer的区别 最近在学习>,有很多java.util.concurrent包下的新类。LinkedBlockingQueue就是其中之一,顾名思义这是一个阻塞的线程安全的队列,底层应该采用链表实现。 看其API的时候发现,添加元素的...
分类:
数据库 时间:
2016-01-05 15:16:05
阅读次数:
255
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需...
分类:
数据库 时间:
2016-01-04 21:05:53
阅读次数:
270
0. 前言 前段时间在看无锁队列相关的东西时发现了一篇关于加锁队列算法优化的文章,故看了下其原理以及使用C实现了该队列。该队列在Java中类LinkedBlockingQueue以及实现了该功能。 相关文章:Simple, Fast, and Practical Non-Blocking and.....
分类:
编程语言 时间:
2015-12-22 19:31:56
阅读次数:
225
先贴基本实现代码:import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.ThreadPoolExecutor...
分类:
其他好文 时间:
2015-12-10 18:54:47
阅读次数:
1119
一、BlockingQueue接口 BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。二、ArrayBlockingQueue ArrayBlo...
分类:
数据库 时间:
2015-10-19 23:45:46
阅读次数:
301
看下两段代码就明白了: 1、ThreadPoolExecutor final ThreadPoolExecutor tpe = new ThreadPoolExecutor(5,10,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
public void resolve(Seriali...
分类:
其他好文 时间:
2015-08-14 15:50:22
阅读次数:
232
原文地址:http://maoyidao.iteye.com/blog/1663193一个仅仅部署在4台服务器上的服务,每秒向Database写入数据超过100万行数据,每分钟产生超过1G的数据。而每台服务器(8核12G)上CPU占用不到100%,load不超过5。这是怎么做到呢?下面将给你描述这个...
分类:
数据库 时间:
2015-06-07 23:10:22
阅读次数:
219
private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000),new ThreadPoolExecutor.Ca...
分类:
其他好文 时间:
2015-05-15 13:35:50
阅读次数:
115
有一台机器具有三个任务:一个制作吐司、一个给吐司摸黄油、另一个在抹过黄油的吐司上涂果酱。我们可以通过各个处理过程之间的BlockingQueue来运行这个吐司制作程序。也就说我们可以利用三个阻塞队列LinkedBlockingQueue,一个任务完成后就把这个Toast放到下一个队列中,维护三个队列就能做到了。
class Toast {
public enum Status {DRY, BU...
分类:
其他好文 时间:
2015-04-22 00:37:51
阅读次数:
168