`
BucketLi
  • 浏览: 195072 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
5a76a659-f8e6-3bf3-b39a-8ae8f7a0f9d9
Percolator与分布...
浏览量:5674
社区版块
存档分类
最新评论

一个标准的java线程工厂

 
阅读更多
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;

public class WorkerThreadFactory implements ThreadFactory {
	private static final AtomicInteger poolNumber = new AtomicInteger(1);
	private final ThreadGroup group;
	private final AtomicInteger threadNumber = new AtomicInteger(1);
	private final String namePrefix;

	public WorkerThreadFactory(ThreadGroup group, String prefix) {
		if (group == null) {
			SecurityManager s = System.getSecurityManager();
			this.group = s != null ? s.getThreadGroup() : Thread
					.currentThread().getThreadGroup();
		} else {
			this.group = group;
		}
		if (prefix == null) {
			this.namePrefix = "pool-" + poolNumber.getAndIncrement()
					+ "-thread-";
		} else {
			this.namePrefix = prefix + "-" + poolNumber.getAndIncrement()
					+ "-thread-";
		}
	}
	public WorkerThreadFactory(String prefix){
	    this(null,prefix);
	}

	public WorkerThreadFactory() {
		this(null,null);
	}

	public Thread newThread(Runnable r) {
		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多线程编程

    在单线程环境中,程序按照顺序执行任务,而在多线程环境中,可以同时执行多个任务,每个任务被称为一个线程。Java通过`Thread`类和`Runnable`接口提供了对多线程的支持。创建线程有两种方式:继承`Thread`类或实现`...

    java多线程面试题59题集合

    在面试中,对Java多线程的理解和熟练运用往往成为衡量开发者技能水平的重要标准。以下是对Java多线程面试题59题集合中可能涉及的一些关键知识点的详细解析。 1. **线程的创建方式** - 继承Thread类:创建一个新的...

    java多线程2

    Java多线程是Java编程中的一个核心概念,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过两种方式实现:继承Thread类和实现Runnable接口。 1. 继承Thread类:创建一个新的...

    Thread 线程 java编程 亲手测试了的

    Java线程有三个优先级:`MIN_PRIORITY`(1)、`NORM_PRIORITY`(5)、`MAX_PRIORITY`(10),默认优先级是`NORM_PRIORITY`。但优先级高的线程并不保证一定先执行,线程调度主要依赖于操作系统。 ### 六、守护线程(Daemon...

    东方标准JAVA培训

    "东方标准JAVA培训"可能是一个专注于教授Java编程技能的课程,旨在帮助学员成为国际软件工程师。这个培训可能包含了从基础到高级的全方位Java知识。 1. **面向对象编程基础**:在1-JAVA面向对象程序设计部分,你将...

    Java多线程编程实战指南 设计模式篇

    2. 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 3. 建造者模式:在多线程环境下,建造者模式可以避免因线程同步而导致...

    java 多线程

    一个标准的线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成。 - **多线程**:在计算机程序设计中,多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在...

    Java SE完整版精品优质课件 自学入门必看的优秀Java基础知识培训教案 第11章_多线程(共54页).rar

    本课件聚焦于Java SE中的一个重要概念——多线程,这是理解并发编程的基础,对于任何Java开发者来说都至关重要。 多线程在Java中是一个核心特性,它允许程序同时执行多个独立的执行路径,从而提高了应用程序的效率...

    java多线程_设计模式_各种技术(我的书架)

    而压缩包内的文件名称虽然看似与Java多线程和设计模式无关,但它们涉及到Nginx,一个流行的高性能HTTP和反向代理服务器。Nginx以其高效的并发处理能力和轻量级的进程模型而著名,这与多线程的概念有异曲同工之妙。...

    多线程定时任务邮件服务

    多线程是指在一个程序中同时执行多个独立的线程,以提高程序的并发性和执行效率。在Java中,可以使用`Thread`类或者`Runnable`接口来创建线程,还可以利用`ExecutorService`和`ThreadPoolExecutor`进行线程池管理,...

    java开发一个很好的例子

    例如,单例模式用于确保一个类只有一个实例,工厂模式用于创建对象,观察者模式用于事件驱动编程。 9. **Spring框架**:虽然标题没有明确提到,但Java开发经常涉及到Spring框架,它是Java企业级应用的事实标准。...

    java面试中遇到的问题

    * JDBC 是 Java 中的一个数据库连接标准,用于将 Java 应用与数据库集成。 * SSH 是 Secure Shell 的缩写,用于安全地远程登录服务器。 * jar 包是 Java 中的一个打包格式,用于将 Java 类文件和资源文件打包成一个...

    Java线程池文档

    线程池会维护一个工作队列,当一个任务提交到线程池时,如果当前有空闲线程,任务就会立即被执行;如果没有,任务会被放入工作队列等待,直到有线程可用。 使用线程池的好处包括: 1. **减少创建和销毁线程的开销**...

    java常见面试题java常见面试题

    - **多态**:一个接口可以有多种不同的实现,允许在父类引用中调用子类的方法,实现动态绑定。 5. **集合框架** - **ArrayList和LinkedList**:ArrayList基于动态数组实现,访问速度快但插入删除慢;LinkedList...

    Java编程超市购物程序设计

    6. **多线程**:如果系统需要支持多个顾客同时购物,我们可以使用Java的多线程技术,如Thread类或Runnable接口,让每个顾客的购物过程在一个独立的线程中执行。 7. **设计模式**:观察者模式可用于实现当商品库存...

    java 达内JAVA课件

    Java编程语言是由Sun Microsystems(现为Oracle公司的一部分)在1995年推出的,它是一种面向对象、跨平台的编程语言,广泛应用于企业级应用、移动应用、游戏开发、云计算等多个领域。达内教育是一家知名的IT培训机构...

    Java小型超市收银系统

    【Java小型超市收银系统】是一个基于Java标准版(Java SE)开发的应用程序,它专为小型超市设计,用于管理收银过程。该系统具备与数据库交互的能力,能够读取和写入数据,确保销售记录的准确性和持久性。下面我们将...

Global site tag (gtag.js) - Google Analytics