1. 程式人生 > >Java多執行緒之-----實現自己的ThreadFactory

Java多執行緒之-----實現自己的ThreadFactory

               

工廠模式是最常用的模式之一,在建立執行緒的時候,我們當然也能使用工廠模式來生產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