本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
JAVA.util.concurrent 同步框架(翻译二)
接上一篇:http://caoyaojun1988-163-com.iteye.com/admin/blogs/1279097
3.3 队列
框架的核心是维护阻塞线程的队列,队列的策略是先进先出(FIFO),因 ...
JAVA.util.concurrent 同步框架(翻译一)
最近在使用memcache客户端的时候,发现一个可能是多线程的问题,客户端的实现是NIO+JUC,由于出现频率很低,场景没有办法复原,一直没有找到问题的真正原因,通过代码走查也没有发现任何问题,于是决定回顾一下JUC的东西,看看是不是可以受到启发,于是决定先看一下大牛Doug Lea的论文,顺便翻译一下。由于英文水平很挫,又是第一次,希望不要误导了大家。废话不表。
JAVA.util. ...
Java面试问题之五十六
[百度面试问题之三]:请谈谈你对Java垃圾收集器中并行和并发概念的理解。
答:并行和并发这两个概念都是编程中的概念,在垃圾收集器的上下文语境中,我们应该这样理
解:
(1)并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。
(2)并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能
...
Java并发编程(二) CountDownLatch
接上一回,如果4个工人在装配车轮时,工作间中没有车轮可装配,工人必须等到车轮运送到工作间合适的位置后才可以进行装配车轮的工作。所以,在Worker类中加入一把新的CountDownLatch-----tyreReadyLatch,
让这把锁告诉Worker线程,在轮胎到来之前,必须处于等待状态,假如不等待的话,这个Worker线程会跑出错误,导致的结果是这辆车装配轮胎整个任务失败。所以必须调用
...
常用concurrent包下的类图
摘自:http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
比较常用的类图收罗了一下,备查:
Executor:
Map:
Queue:
几种等待并发线程全部完成的方法
学习到如下几种方法:
1、对于单个的线程,可以采用Future.get()的方法,任务执行完毕后才能拿到结果。
2、对于多个线程,可以采用executor.awaitTemination()的方法,伪代码如下所示:
for(int i = 0;i < n;i++){
executor.execute(task(i));
}
execut ...
SynchronousQueue妙用
创建ThreadPoolExecutor时,Executors.newFixedThreadPool()默认采用的是LinkedBlockingQueue,如果工作者线程处于忙碌状态,新任务将放入队列中等候,队列满了之后,才可能创建新的线程。
有时我们希望绕开队列,直接分配接收者线程,此时可采用SynchronousQueue,只要当前池的大小还小于最大值,ThreadPoolExecuto ...
ThreadPoolExecutor介绍(摘自网络)
从 Java 5 开始,Java 提供了自己的线程池。线程池就是一个线程的容器,每次只执行额定数量的线程。 java.util.concurrent.ThreadPoolExecutor 就是这样的线程池。 ...
java并发编程--线程池初步
[coolxing按: 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正.]
服务器应用程序经常需要处理执行时间很短而数目巨大的请求, 如果为每一个请求创建一个新的线程, 会导致一些问题的出现, 如:
1. 性能瓶颈. 线程的创建和销毁需要执行大量的后台操作, 如果单个请求的执行时间很短, 有可能花在创建和销毁线程上的时间大于真正执行请求的时间.
2. 可能会导致资源不足. 大量的并 ...
[童虎退壳系列]方法加锁测试
package creative.fire.multithread;
import java.util.concurrent.CountDownLatch;
/**
* @author feuyeux@gmail.com 2011-10-13
*
*/
/*
* synchronized static void foo() { ... } is the sa ...
CountDownLatch的使用
concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。
CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLat ...
zz Java并行(1):JMM
zz Java并行(1):JMM
1.什么是JMM?
JMM即Java Memory Model,设想有这样一条赋值语句:int a = 1;而a为诸多线程所共享, JMM所关注的问题就是:“读取a的线程 ...
java多线程(简单程序)
import java.util.concurrent.*;
public class Main implements Runnable {
public void run() {
try {
while (true) {
TimeUnit.MILLISECONDS.sleep(15 ...
Patterns for Concurrent, Parallel, and Distributed Systems(转)
Patterns for Concurrent, Parallel, and Distributed Systems
http://www.cs.wustl.edu/~schmidt/patterns-ace.html
Books on Pattern-Oriented Software Architecture
http://www.cs.wustl.edu/~schmid ...
ConcurrentHashMap是如何提高并发时的吞吐性能(一)
ConcurrentHashMap是如何提高并发时的吞吐性能(一)
guibin.beijing@gmail.com
为并发吞吐性能所做的优化
ConcurrentHashMap使用了一些技巧来获取高的并发性能,同 ...
spring 定时任务同步实现 (二)
第二种实现 方式
package com.shengyidi.app.task;
public class QuartzTestS {
public void start() {
testMethod();
}
private void testMethod() {
System.out.println("\n\n_______ ...
一个任务队列的BlockingQueue实现
一、Concurrent简单介绍
Concurrent是jdk1.5推出来的对多线程实现的进一步封装,它大大的简化了多线程开发。concurrent包分成了三个部分,分别是java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.lock。内容涵盖了并发集合类、线程池机制、同步互斥机制、线程安全的变量更新工具类、锁等 ...