本月博客排行
-
第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
最新文章列表
parallelStream concurrent secure
About parallelStream collect results. Please Use the collect method. The collect method is concurrent secure.
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue ...
Java之CMS GC的7个阶段
CMS收集器的主要设计目标是:低应用停顿时间。它通过两种方式实现这一目标:
不压缩老年代,而是使用空闲列表来管理回收空间。
大部分标记清理工作与应用程序并发执行。
主要问题:由于不压缩带来的老年代堆碎片,或者在对象分配率高的情况下,都可能导致Full GC。
CMS收集器的GC周期主要由7个阶段组成,其中有两个阶段会发生stop-the-world,其他阶段都是并发执行的。(亦有4个 ...
Collections,Synchronized
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
//public static Collection synchronizedCollention(Collection c)
//
//public sta ...
join
public class JoinTest {
//thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。
//比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。
public static void main(String[] args) throws InterruptedExceptio ...
ReentrantLock,Condition
public class ReentrantLockAndConditionTest {
public static void main(String[] args) {
ReentrantLockQueue queue =new ReentrantLockQueue();
for (int i = 0; i < 100; i++) ...
ExecutorService
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.uti ...
CountDownLatch
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CountDownLatchTest {
//比如有一个任务A,它要等待其他4个任务执行完毕 ...
Callable 与 Future
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import ja ...
Semaphore
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
public class SemaphoreTest {
//假若一个工厂有5台机器 ...
CyclicBarrier
public class CyclicBarrierTest {
//在初次的4个线程越过barrier状态后,又可以用来进行新一轮的使用。而CountDownLatch无法进行重复使用。
public static ...
CountDownLatch
一、CountDownLatch
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请 ...
BlockingQueue
参考内容:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
一、BlockingQueue
1.JDK-API说明
public interface BlockingQueue<E> extends Queue<E>
BlockingQueue 支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为 ...
Java之 java.util.concurrent 包之Executor与ExecutorService
一、问题: execute() 与 submit() 的区别?
execute()
来自 Executor 接口,
没有返回值,
只接受 Runnable 对象。
submit()
来自 ExecutorService 接口( ExecutorService 接口继承了 Executor 接口)
返回 Future 对象
可以接受 Callable, Runnable 对象。
二、程 ...
Java之多线程之Callable与Future
Java之多线程之Callable与Future
从 Java 5 开始出现了 java.util.concurrent 包,该包在多线程环境中应用广泛。
一、 java.util.concurrent.Callable
Callable 接口 与 Runnable 接口类似,不同的是它们的唯一的 run 方法:
1、Callable 有返回值,Runnable 没有。
Callabl ...
Java之多线程之Lock与Condition
Java之多线程之Lock
接上文
在多线程环境中,大部分情况下,使用 synchronized 关键字可以满足需求。
但是其也存在不足。于是 java.util.concurrent.locks 包出现 ...
Java之 java.util.concurrent 包之概述
一、概述:java.util.concurrent (Java 并发编程工具包 ) Ref- jenkov
从 JDK1.5 开始新增了一个包:java.util.concurrent,这个包包含了一组Java类,它们使多线程开发变得容易。在新增这个包之前,你需要自己写这些工具类。
在本文中,我(用JDK1.6)将与你介绍一下这个包(java.util.concurrent)里面的类,挨个介绍。 ...
Java 并发
private Map<Integer, Object> map = new ConcurrentHashMap<Integer, Object> ();
@unsafe
public void putIfAbsent(Integer key, String value){
if (!map.containsKey(key)) { ...
ConcurrentHashMap 与 HashMap的区别
http://www.journaldev.com/122/hashmap-vs-concurrenthashmap-%E2%80%93-example-and-exploring-iterator
http://www.java2blog.com/2014/12/concurrenthashmap-in-java.html
还有 这个 如何把HashMap 也同步起来
http://crun ...
Java 线程同步几种方式
为何要使用同步?
java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),
将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,
从而保证了该变量的唯一性和准确性。
1.同步方法
即有synchronized关键字修饰的方法。
由于java的每个对 ...