Java多執行緒之-----實現自己的ThreadFactory
阿新 • • 發佈:2019-01-12
工廠模式是最常用的模式之一,在建立執行緒的時候,我們當然也能使用工廠模式來生產Thread,這樣就能替代默
認的new THread,而且在自定義工廠裡面,我們能建立自定義化的Thread,並且計數,或則限制建立Thread的數量,
給每個Thread設定對應的好聽的名字,或則其他的很多很多事情,總之就是很爽,下面我們來展示一個簡單的Thread
工廠模式來建立自己的Thread。
package com.bird.concursey;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.concurrent.ThreadFactory;public class MyThreadFactory implements ThreadFactory { private int counter; private String name; private List<String> stats; public MyThreadFactory(String name) { counter = 0; this.name = name; stats = new ArrayList<String>(); } @Override public Thread newThread(Runnable run) { Thread t = new Thread(run, name + "-Thread-" + counter); counter++; stats.add(String.format("Created thread %d with name %s on%s\n" ,t.getId() ,t.getName() ,new Date())); return t; } public String getStas() { StringBuffer buffer = new StringBuffer(); Iterator<String> it = stats.iterator(); while(it.hasNext()) { buffer.append(it.next()); buffer.append("\n"); } return buffer.toString(); } public static void main(String[] args) { MyThreadFactory factory = new MyThreadFactory("MyThreadFactory"); Task task = new Task(); Thread thread = null; for(int i = 0; i < 10; i++) { thread = factory.newThread(task); thread.start(); } System.out.printf("Factory stats:\n"); System.out.printf("%s\n",factory.getStas()); }}
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow