随笔分类 - Java多线程
摘要:HashSet内部是用的HashMap,只用了HashMap的key。同步集合 传统集合类在并发访问时的问题说明:死锁死循环 传统方式下用Collections工具类提供的synchronizedCollection方法来获得同步集合,分析该方法的实现源码 Java5中提供了如下一些同步集合类...
阅读全文
摘要:BlockingDeque 方法有四种形式,使用不同的方式处理无法立即满足但在将来某一时刻可能满足的操作:第一种方式抛出异常;第二种返回一个特殊值(null 或 false,具体取决于操作);第三种无限期阻塞当前线程,直至操作成功;第四种只阻塞给定的最大时间,然后放弃。下表中总结了这些方法:第一个元...
阅读全文
摘要:1 import java.util.concurrent.Exchanger; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 5 /** 6 * Java5的...
阅读全文
摘要:1 import java.util.concurrent.CountDownLatch; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 5 /** 6 * 1...
阅读全文
摘要:1 import java.util.concurrent.CyclicBarrier; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 5 /** 6 * Cy...
阅读全文
摘要:1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 import java.util.concurrent.Semaphore; 4 5 /** 6 * 14.Jav...
阅读全文
摘要:1 import java.util.concurrent.locks.Condition; 2 import java.util.concurrent.locks.Lock; 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** ...
阅读全文
摘要:1 import java.util.Random; 2 import java.util.concurrent.locks.ReadWriteLock; 3 import java.util.concurrent.locks.ReentrantReadWriteLock; 4 /** 5 * ...
阅读全文
摘要:1 import java.util.concurrent.locks.Lock; 2 import java.util.concurrent.locks.ReentrantLock; 3 4 5 /** 6 * java5的线程锁技术 7 * Lock比传统线程模型中的synchroni...
阅读全文
摘要:1 import java.util.Random; 2 import java.util.concurrent.Callable; 3 import java.util.concurrent.CompletionService; 4 import java.util.concurrent.Exe...
阅读全文
摘要:1 import java.util.concurrent.atomic.AtomicInteger; 2 /** 3 * java5原子性操作类的应用 4 * @author LiTaiQing 5 * 6 */ 7 public class AtomClassTest { 8 ...
阅读全文
摘要:1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 import java.util.concurrent.TimeUnit; 4 5 /** 6 * java5线程...
阅读全文
摘要:1 import java.util.Random; 2 3 /** 4 * ThreadLocal类及应用技巧 5 * ******************************************************************* 6 * 每个线程调用...
阅读全文
摘要:1 import java.util.HashMap; 2 import java.util.Map; 3 import java.util.Random; 4 5 /******************************* 6 * 模拟ThrealLocal的实现 7 * 用处: 8...
阅读全文
摘要:1 /** 2 * 传统线程同步通信技术 3 * 4 * ******************************************* 5 * 经验: 6 * 要用到共同数据(包括共同锁)或共同算法的若干个方法应该 7 * 归在用一个类身上,这种设计正好体现了高...
阅读全文
摘要:线程安全问题可以用银行转账来解释 1 /** 2 * 传统的线程互斥技术 3 * @author LiTaiQing 4 */ 5 public class TraditionalThreadSynchronized { 6 7 public static void mai...
阅读全文
摘要:java.util 类 Timer java.lang.Object java.util.Timer 方法摘要 void cancel() 终止此计时器,丢弃所有当前已安排的任务。 int purge() 从此计时器的任务队列中移除所有已取消的任务。 void schedule(TimerTask
阅读全文
摘要:1 import org.junit.Test; 2 /** 3 * 传统线程回顾 4 * 多线程不一定会提高运行效率,和CPU设计和架构有关。 5 * 多线程下载是抢了服务器的资源,并不是自身的机器加快。 6 * @author LiTaiQing 7 */ 8 public class Trad
阅读全文
摘要:1 /** 2 * 多个线程之间共享数据的方式探讨 3 * @author LiTaiQing 4 * 5 * ************************************************* 6 * 如果每个线程执行的代码不同,这时候需要用不同的Runnable对象...
阅读全文