Java SE5中java.util.concurrent包中的执行器将管理Thread.简要介绍一下:
1.CachedThreadPool:这是首选的,因为他会根据需要创建合理数量的线程:
ExecutorService exec=Executors.newCachedThreadPool(); for(int i=0;i<10;i++){ exec.execute(new MyRunnable()); } exec.shutdown(); System.out.println("main finished;");
//output: runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 1 runnable tag: 1 runnable tag: 0 runnable tag: 3 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 3 runnable tag: 3 runnable tag: 5 runnable tag: 5 runnable tag: 0 runnable tag: 0 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 1 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 2 runnable tag: 4 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 1 runnable tag: 1 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 6 runnable tag: 6 runnable tag: 0 runnable tag: 0 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 0 runnable tag: 0 runnable tag: 6 runnable tag: 3 main finished; runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 8 runnable tag: 8 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 2 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 9 runnable tag: 9 runnable tag: 6 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 8 runnable tag: 8 runnable tag: 6 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6
由结果可知,进程之间是抢占式的执行的。
2.FixedThreadPool: 这个可以控制线程池的线程数量,即指定线程数量;
ExecutorService exec=Executors.newFixedThreadPool(5); for(int i=0;i<10;i++){ exec.execute(new MyRunnable()); } exec.shutdown(); System.out.println("main finished;");
运行结果和上一个类似。
3.SingleThreadExecutor : 顾名思义是一个单线程执行器,对于连续运行的事物是很有用的。例如:监听进入的套接字连接任务或更新本地或者远程的日志。
ExecutorService exec=Executors.newSingleThreadExecutor(); for(int i=0;i<10;i++){ exec.execute(new MyRunnable()); } exec.shutdown(); System.out.println("main finished;");
运行结果是按照顺序的,一个一个的:
main finished; runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 0 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 1 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 2 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 3 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 4 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 5 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 6 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 7 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 8 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9 runnable tag: 9
//*****************************************************************************************************************************
package com.wjy.multithread; public class MyRunnable implements Runnable{ private static int num=0; private final int tag=num++; @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<10;i++){ System.out.println("runnable tag: "+tag); } } }
相关推荐
《Java并发编程实战》是Java并发编程领域的一本经典著作,它深入浅出地介绍了如何在Java平台上进行高效的多线程编程。这本书的源码提供了丰富的示例,可以帮助读者更好地理解书中的理论知识并将其应用到实际项目中。...
《JAVA并发编程艺术》是Java开发者深入理解和掌握并发编程的一本重要著作,它涵盖了Java并发领域的核心概念和技术。这本书详细阐述了如何在多线程环境下有效地编写高效、可靠的代码,对于提升Java程序员的技能水平...
在现代Java应用开发中,多线程并发编程已成为提升程序性能的关键技术之一。Java通过引入Executor框架,为并发任务的执行提供了一种高效、灵活的管理机制。本文将深入探讨Executor框架的设计哲学、核心组件,并结合...
4.2.1 Java监视器模式 4.2.2 示例:车辆追踪 4.3 线程安全性的委托 4.3.1 示例:基于委托的车辆追踪器 4.3.2 独立的状态变量 4.3.3 当委托失效时 4.3.4 发布底层的状态变量 4.3.5 示例:发布状态的车辆追踪...
Java并发编程是Java语言中最为复杂且重要的部分之一,它涉及了多线程编程、内存模型、同步机制等多个领域。为了深入理解Java并发编程,有必要了解其核心技术点和相关实现原理,以下将详细介绍文件中提及的关键知识点...
### Java 并发核心编程知识点解析 #### 一、Java并发概述 自Java诞生之初,其设计者就赋予了该语言强大的并发处理能力。Java语言内置了对线程和锁的支持,这...理解和掌握这些概念和技术是成功进行并发编程的关键。
Java并发编程是指在Java程序中同时执行多个线程以提高程序的执行效率和响应速度的技术。并发编程可以带来许多优点,如提高程序的执行效率、改善用户体验等。但同时,Java并发编程也存在一些缺点,如线程安全问题、...
4.2.1 Java监视器模式 4.2.2 示例:车辆追踪 4.3 线程安全性的委托 4.3.1 示例:基于委托的车辆追踪器 4.3.2 独立的状态变量 4.3.3 当委托失效时 4.3.4 发布底层的状态变量 4.3.5 示例:发布状态的车辆追踪...
上述提及的知识点,如线程的基本概念、并发集合、锁机制、线程池的使用、线程同步与通信的模式等,都是《java并发编程从入门到精通》这本书的前三章可能会涉及的内容。尽管这里只能提供试读版的内容,但通过阅读和...
Java并发编程是Java开发中的重要领域,它涉及如何在多处理器或多核心环境下高效地执行程序。本套源码集合全面涵盖了Java并发编程的核心知识点,包括但不限于对象锁、Executors多任务线程框架以及线程池的实现。下面...
7. **线程池与Executor框架**:ExecutorService是Java并发编程的核心,它允许我们管理线程,控制并发级别,避免频繁创建和销毁线程的开销。ThreadPoolExecutor是ExecutorService的一个实现,可以根据需求配置线程池...
Java并发编程库,特别是java.util.concurrent(简称J.U.C),是Java语言在多线程处理上的一大亮点。并发编程是一个复杂的话题,因为它涉及到许多高级概念,包括线程安全、死锁、性能优化和原子操作等。J.U.C正是为了...
《Java并发编程的艺术》这本书是Java开发者深入了解并发编程的重要参考资料。在Java开发中,尤其是在多核处理器和高并发场景下,理解和掌握并发编程是至关重要的。以下是对书中的主要知识点的详细阐述: 1. **Java...
为了更好地理解Java并发编程的实际应用,我们可以考虑一个简单的例子——使用`Future`和`Callable`来实现异步任务的执行。假设有一个复杂的计算任务需要长时间执行,但主程序不能等待这个任务完成。此时,可以将计算...
Java并发编程是现代软件开发不可或缺的一部分,它不仅可以提升程序的执行效率,还能改善用户体验。通过深入学习Java并发编程的相关知识和技术,开发者可以更好地利用多核处理器的优势,构建出高性能、健壮的应用程序...
《Java并发编程实战》是Java开发者深入理解并发编程的一本经典著作。这本书深入浅出地讲解了Java平台上的并发和多线程编程,涵盖了从基本概念到高级技术的方方面面。以下将围绕这本书的源码、PDF及Java并发编程的...
这些API为开发者提供了构建并发程序所需的各种工具,例如并发集合、同步器、执行器(Executor)框架等。通过对这些API的熟练使用,开发者可以更加容易地编写出高效的并发代码。 除了API介绍之外,本书还会着重讲解...