java多线程设计模式全部源码:
模式图
类图
时序图
Main.java
public class Main {
public static void main(String[] args) {
Host host = new Host();
host.request(10, 'A');
host.request(20, 'B');
host.request(30, 'C');
}
}
Host.java
public class Host {
private Helper mHandler = new Helper();
public void request(final int count, final char ch) {
System.out.println("request (count:" + count + ",ch:" + ch + ") begin!");
//可以通过实现ThreadFactory接口来创建线程
new Thread() {
@Override
public void run() {
mHandler.handle(count, ch);
}
}.start();
System.out.println("request (count:" + count + ",ch:" + ch + ") end !");
}
}
Helper.java
public class Helper {
public void handle(int count, char ch) {
System.out.println(Thread.currentThread().getName() +
" count=" + count + " " + ch + " begin:");
for(int i = 0; i < count; ++i) {
slowly();
System.out.print(ch);
}
System.out.println();
System.out.println(Thread.currentThread().getName()
+ " count=" + count + " " + ch + " end!");
}
private void slowly() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}