摘要:来至《java多线程设计模式》 异步消息---综合Producer-Consumer,Thread-Per-Message,Future Pattern等模式。 。。。。。。
阅读全文
摘要:来至《java多线程设计模式》 每个线程有自己的保险箱---ThreadLocal package Sample2;public class Log { private static final ThreadLocal tsLogCollection = new ThreadLocal(); // 加入一个log public static void println(String s) { g...
阅读全文
摘要:来至《java多线程设计模式》 两阶段终止,作业中--》终止处理中--》结束 不把处理一半的事情搁着,草率结束,等待其处理好后才真正的结束。public class Main { public static void main(String[] args) { System.out.println("main: BEGIN"); try { CountupThread t = new Countu...
阅读全文
摘要:来至《java多线程设计模式》 对于一个执行起来需要花些时间的方法,不等待执行结果出来,而是获取一张替代的“提货单”。 使用异步方法调用,分离准备返回值和使用返回值。 public class Main { public static void main(String[] args) { System.out.println("main BEGIN"); Host hos...
阅读全文
摘要:来至《java多线程设计模式》 类似ThreadPool,预先产生几个worker线程准备工作。 public void startWorkers() { for (int i = 0; i < threadPool.length; i++) { threadPool[i].start(); } }package Sample;public class WorkerThread exten...
阅读全文
摘要:来至《java多线程设计模式》 对每个命令或请求分配一个线程,由这个线程执行工作。 public class Host { private final Helper helper = new Helper(); public void request(final int count, final char c) { ...
阅读全文
摘要:来至《java多线程设计模式》 自己提供一个逻辑锁代替JDK的物理锁synchronized 优点:1.对read操作不进行共享互斥,可以进行多个read操作,提高系统性能 2.适合read》write的情况 package Sample;public final class ReadWriteLock ...
阅读全文
摘要:参考《java多线程设计模式》 在多个生产者和多个消费者之间加入一个中间者来缓冲线程之间的处理速度差。 // 放置蛋糕 public synchronized void put(String cake) throws InterruptedException { System.out.println(Thread.currentThread().getName() + " puts ...
阅读全文
摘要:参考《java多线程设计模式》 当警戒条件不成立就马上中断。 // 若有资料修改,就存储到挡安里 public synchronized void save() throws IOException { if (!changed) { System.out.println(Thread.currentThread().getName() + " balks"); return; } doSave(...
阅读全文
摘要:参考《java多线程设计模式》 要求线程等候,以保障实例安全。 一个server线程取出请求进行处理,一个client线程放进请求待处理。 public class RequestQueue { private final LinkedList queue = new LinkedList(); public synchronized Request getRequest() { while...
阅读全文
摘要:来至《java多线程设计模式》 一、方法:无需synchronized方法,本身就不变,没有提供可以让外界修改的方法,只有读取。public final class Person { private final String name; private final String address; public Person(String name, String address) { this.n...
阅读全文
摘要:来至《java多线程设计模式》 一、方法:用synchronized方法,每次只让一个通过。 public class UserThread extends Thread { private final Gate gate; private final String myname; private final String myaddress; public UserThread(Gate g...
阅读全文
摘要:手工关闭logpublic class ClientThread extends Thread { public ClientThread(String name) { super(name); } public void run() { System.out.println(getName() + " BEGIN"); for (int i = 0; i < 10; i++) { Log....
阅读全文
摘要:来至《java多线程设计模式》 1.wait (1)调用wait方法必须先获得对象实例的锁; (2)可以再synchronized方法中,或synchronized块中或两者调用的别的方法中; (3)执行wait方法的线程会进入obj的wait set里面,进入之后就已经释放obj的锁; ...
阅读全文
摘要:书籍推荐:《Java多线程设计模式》http://www.china-pub.com/24630&ref=xiangguan 感性认识: package persia; public class MyThread extends Thread { public void run(){ for(int i=0;i<10000;i++){ System.out.print("Ni...
阅读全文