JAVA執行緒的Factory類,以便自定義執行緒名
package com.opensource;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 描述:執行緒的Factory類,以便自定義執行緒名
*
* @author Cache John
*
*/
public class NamedThreadFactory implements ThreadFactory
{
static final AtomicInteger poolNumber = new AtomicInteger(1);
final ThreadGroup group;
final AtomicInteger threadNumber = new AtomicInteger(1);
final String namePrefix;
public NamedThreadFactory()
{
final SecurityManager s = System.getSecurityManager();
this.group = s != null ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
this.namePrefix = "pool-" + poolNumber.getAndIncrement() + "-thread-";
}
public NamedThreadFactory(final String name)
{
final SecurityManager s = System.getSecurityManager();
this.group = s != null ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
this.namePrefix = generateNamePrefix(name);
}
public static String generateNamePrefix(final String name)
{
return name + "-" + poolNumber.getAndIncrement() + "-thread-";
}
/*
* (non-Javadoc)
*
* @see java.util.concurrent.ThreadFactory#newThread(java.lang.Runnable)
*/
@Override
public Thread newThread(final Runnable r)
{
// ? 潛在的問題是最後建立的這個執行緒的計數會不會超過integer的最大值
final Thread t = new Thread(this.group, r, this.namePrefix + this.threadNumber.getAndIncrement(), 0);
if (t.isDaemon())
{
t.setDaemon(false);
}
if (t.getPriority() != Thread.NORM_PRIORITY)
{
t.setPriority(Thread.NORM_PRIORITY);
}
return t;
}
}
相關推薦
JAVA執行緒的Factory類,以便自定義執行緒名
package com.opensource; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomi
Java併發程式設計:Java的四種執行緒池的使用,以及自定義執行緒工廠
目錄 引言 四種執行緒池 newCachedThreadPool:可快取的執行緒池 newFixedThreadPool:定長執行緒池 newSingleThreadExecutor:單執行緒執行緒池 newScheduledThreadPool:支援定時的定
Java的四種執行緒池的使用,以及自定義執行緒工廠
四種執行緒池 四種執行緒池分別是:newCachedThreadPool、newFixedThreadPool 、newScheduledThreadPool 和newSingleThreadExecutor ,下面對這幾個執行緒池一一講解。 newCachedThreadPool:可快取的執行緒
java多執行緒工具類,可用該多執行緒同時處理相同且數量多的任務
package zrh4; public class ThreadModel {private static int maxThread = 4;protected static int currentThread = 0;private static ThreadMode
spring boot-執行Async任務時,使用自定義的執行緒池
一、增加配置屬性類 package com.chhliu.springboot.async.configuration; import org.springframework.boot.context.properties.ConfigurationPropertie
Java 物件流的用法,將自定義類陣列寫入檔案中
FileInputStream和FileOutputStream可以將類,陣列,等寫入如檔案並讀取。 public class UserList implements Serializable{
php 數據分頁類,可自定義多個分頁樣式
logs echo oot log 好的 num 方式 turn pre 調用分頁類的方法: // 測試分頁 public function pageTestAction() { Load::load_class(‘getPage‘,DI
[轉]DES加密和解密工具類,可自定義key
import javax.crypto.Cipher; import java.security.Key; import java.security.Security; public class DesUtils { /** * 字串預設鍵
一些通用的js工具類,新增自定義外掛
common_t.js /** * 通用工具元件 對原有的工具進行封裝,自定義某方法統一處理<br> * ^_^ * * Author: em.D * Date: 2016-05-17 * Version: 0.0.1 */ function send_htt
實驗報告:(1)合理定義一個三角形類Triangle,成員屬性包括3條邊,能否構成三角形的標誌;成員方法包括構造方法、修改3條邊、計算面積。 (2)寫一測試類,測試自定義三角形類Triangle是否正
(1)合理定義一個三角形類Triangle,成員屬性包括3條邊,能否構成三角形的標誌;成員方法包括構造方法、修改3條邊、計算面積。(2)寫一測試類,測試自定義三角形類Triangle是否正確。class Triangle_D{ private double f_edge;
定義一個類,封裝矩形的長和寬;在定義一個類,繼承自定義的這個類,在繼承類中根據基類中封裝的矩形的長和寬求矩形的面積。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 封裝長方體 {
多執行緒實現方式1:自定義一個類,繼承Thread類,並重寫run方法。
/** * 多執行緒實現方式1: * 自定義一個類,繼承Thread類,並重寫run方法。 * 執行緒同時執行。 * @author jiaxutianhuo * */ public cl
自定義類MyThread 實現Runnable介面,主函式建立5個執行緒,自定義執行緒類的建構函式輸出 建立執行緒X
package com.heima.gu; import java.util.HashMap; public class Test01 { /**自定義類MyThread 實現Runnabl
java中為什麼Hashtable是執行緒安全的,而HashMap是執行緒不安全的?還有ArrayList為什麼是執行緒不安全的,Vector是執行緒安全的??
文章目錄 一、HashMap解析 二、Hashtable解析 三、Collections.synchronizedMap()解析 四、ConcurrentHashMap 六、ArrayList為什麼是執行緒不安全的,Vector是執行緒安全的?
JAVA:HashMap常用方法,對於自定義類的儲存,原始碼分析
public static void main(String[] args) { //hashMap儲存結構為陣列+連結串列 //資料儲存方式為鍵值對 HashMap<String, Integer> hashMap = ne
通過追女孩子案例模擬Thread類、Runnable介面、自定義執行緒類之間的關係
我們知道,在Thread類、Runnable介面、自定義執行緒類之間實現了靜態代理的設計模式,以下進行簡單的模擬,方便我們對執行緒和靜態代理的一個更加具象的認識。 被人追介面beiRenZhui(Runnable): /* * 本介面是被人追介面,每一個女孩子都有被人追的特性, * 所以
Java 多執行緒 自定義執行緒輔助
之前的文章我介紹了C#版本的多執行緒和自定義執行緒處理器。 接下來我們來看看Java版本的呢 java 的執行緒和C#的執行緒有點區別,java的執行緒沒有是否是後臺執行緒一說,具體原因是java的執行緒是jvm的c++程式碼模擬執行緒,而C#的執行緒也是C++模擬執行緒。但是區別在於C#的執行緒會基於系
看我是如何處理自定義執行緒模型---java
看過我之前文章的園友可能知道我是做遊戲開發,我的很多思路和出發點是按照遊戲思路來處理的,所以和web的話可能會有衝突,不相符合。 來說說為啥我要自定義執行緒模型呢? 按照我做的mmorpg或者mmoarpg遊戲劃分,執行緒被劃分為,主執行緒,全域性同步執行緒,聊天執行緒,組隊執行緒,地圖執行緒,以及地圖訊
java實現三個執行緒A B C,A執行緒列印A之後才能B執行緒列印B,然後接著C執行緒執行列印C,繼而迴圈下去
最近看到有人提問這個問題,而且好多人又是轉載的,寫了一大堆,看的我頭都大了。於是自己做了個小程式輕鬆解決。 附上程式碼: package pcitc; import java.util.concurrent.locks.Lock; import java.util.conc
Java併發程式設計中四種執行緒池及自定義執行緒使用教程
引言 通過前面的文章,我們學習了Executor框架中的核心類ThreadPoolExecutor ,對於執行緒池的核心排程機制有了一定的瞭解,並且成功使用ThreadPoolExecutor 建立了執行緒池。 而在Java中,除了ThreadPoolExecutor ,Executor框