文章分类 -  线程

线程
摘要:import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ConditionCommunication { /** * 这一个示例的学习应该和传统的线程通信相互对比,Condition的通信优点查看文档 */ public static void main(String[] args) { final Bussiness bu... 阅读全文
posted @ 2014-03-16 00:01 huidaoli 阅读(158) 评论(0) 推荐(0) 编辑
摘要:import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class CacheDemo { /** * 缓存:就是一个对象把数据(从数据库或是文件...)拿到,等待另外的对象来取数据 * 如果存在就直接取走,不存在则查询数据库或文件... * */ private static Map... 阅读全文
posted @ 2014-03-16 00:00 huidaoli 阅读(212) 评论(0) 推荐(0) 编辑
摘要:import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorCompletionService;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import jav 阅读全文
posted @ 2014-03-15 23:59 huidaoli 阅读(125) 评论(0) 推荐(0) 编辑
摘要:import java.util.Random;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class ThreadReadWriteLock { /** * 读写锁 * 读得时候还能读 * 读的时候不能写 * 写的时候不能读 * 写的时候不能写 */ publi... 阅读全文
posted @ 2014-03-15 23:58 huidaoli 阅读(137) 评论(0) 推荐(0) 编辑
摘要:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ThreadLock { /** * java中的锁类是于synchronized * Lock是比传统线程模型中的synchronized 的方式更加面向对象,与生活中的锁类似 * 锁本身也是一个对象。两个线程执行的飞、代码片段要实现同步互斥的效果 * 他们必须是同一个对象。锁是上在代表要操作的资源的类的内部方法中,而不是线程代码中 */ p... 阅读全文
posted @ 2014-03-15 23:55 huidaoli 阅读(110) 评论(0) 推荐(0) 编辑
摘要:public class TraditionalCommunication { /** * @param args */ public static void main(String[] args) { final Bussiness bussiness = new Bussiness(); new Thread(new Runnable(){ public void run() { for(int i=0;i<50;i++){ tr... 阅读全文
posted @ 2014-03-15 23:54 huidaoli 阅读(134) 评论(0) 推荐(0) 编辑
摘要:import java.util.HashMap;import java.util.Map;import java.util.Random;public class ThreadScopeShareData { /** * 多个线程访问同一个成员变量,因该是每一个线程拿到的变量是不同的 * 比如银行的转账 * 张三对李四 * 王五对赵六 * 如果成员变量不和线程绑定那么王五就可能在转账时操作张三的钱 * 如下程序因该是每个getData都要从自己的线程拿到自己的数据 * 然而实际情况并非如此 */ // ... 阅读全文
posted @ 2014-03-15 23:52 huidaoli 阅读(966) 评论(0) 推荐(0) 编辑
摘要:public class ThreadScopeMultiShareData { /** * 多线程之间的共享数据的方式 */ /* * 如果每个线程执行的代码一样,可以使用同一个runnable对象,这个共享数据就可以放在runnable中,例如卖票系统 * 如下例 */// public static void main(String[] args) {//// Ticket ticket = new Ticket();// new Thread(ticket).start();/... 阅读全文
posted @ 2014-03-15 23:51 huidaoli 阅读(810) 评论(0) 推荐(0) 编辑
摘要:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class TraditionalThreadPlool { /** * 线程池 */ public static void main(String[] args) { ////创建了有3条线程的线程池// ExecutorService threadPool = Executors.new... 阅读全文
posted @ 2014-03-15 23:41 huidaoli 阅读(216) 评论(0) 推荐(0) 编辑