`
xfxlch
  • 浏览: 167512 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Executors.newFixedThreadPool实例

    博客分类:
  • Java
 
阅读更多
在线程池中,有一个是专门定义单线程的线程池,是Executors.newFixedThreadPool。为什么要单独定义一个池,这个池有什么特别的地方呢?
1.主要是这个线程池可以在挂掉或者出异常的情况下,重新启动一个线程来执行接下去的任务。这个对开发人员就比较方便了。
/**
 * <br>
 * do what you want to do and never stop it.
 * <br>
 */
package com.luch.thread;

import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * @author Jack
 * Jul 13, 2014
 * <br>
 */
public class SingleThreadExecutorDemo implements Runnable{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SingleThreadExecutorDemo demo = new SingleThreadExecutorDemo();
		ExecutorService  exec =  Executors.newSingleThreadExecutor();
		exec.execute(demo);

	}

	public void run() {
		int temp = 0;
		int i = 0;
		while(true){
			int j = new Random().nextInt(100);
			System.out.println("temp="+ temp + ",j=" + j + ",i=" + i++ );
			try {
				if(temp==0 && j > 90){
					temp = j/0;
				}
				Thread.sleep(100);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				temp = 0;
			}
			
		}
		
	}

}
分享到:
评论

相关推荐

    四大线程池的用法实例

    Java的`java.util.concurrent`包提供了四种主要的线程池实现:`Executors.newFixedThreadPool()`, `Executors.newSingleThreadExecutor()`, `Executors.newCachedThreadPool()`以及`Executors.newWorkStealingPool()...

    java 线程池管理类:Executors_.docx

    `java.util.concurrent.Executors` 继承自 `java.lang.Object`,作为一个工具类,它提供了一系列用于创建和管理线程池的方法,包括`ExecutorService`、`ScheduledExecutorService`、`ThreadFactory`和`Callable`等...

    SimpleDateFormat线程不安全的5种解决方案.docx

    ExecutorService threadPool = Executors.newFixedThreadPool(10); for (int i = 0; i ; i++) { int finalI = i; threadPool.execute(new Runnable() { @Override public void run() { synchronized ...

    java多线程查询数据库

    每个实例可能代表一次数据库查询,包含具体的SQL语句和执行查询所需的参数。在`executeConcurrentQueries`中,这些`Runnable`对象会被提交到线程池进行执行。 ### 6. 并发控制与同步 在并发环境下,为了防止数据...

    使用Java匿名内部类实现一个简单的线程池.txt

    这里通过`Executors.newFixedThreadPool(5)`创建了一个固定大小为5的线程池。这意味着任何时候线程池中最多只能有5个线程同时运行。 ##### 4. 提交任务到线程池 ```java for (int i = 0; i ; i++) { Runnable ...

    tcp_thread_java.zip_Java 线程池_java TCP线程

    通过调用`TCPServer`的实例方法来绑定监听端口,并使用`Executors.newFixedThreadPool`创建线程池。`newFixedThreadPool`接收一个整数参数,表示线程池的大小。这意味着线程池会始终维持固定数量的线程,即使有线程...

    java线程和线程池的使用.docx

    - `Executors.newFixedThreadPool(int nThreads)`:创建一个固定大小的线程池,重复提交任务时,会复用已有线程,而不是创建新的。 - `Executors.newCachedThreadPool()`:创建一个可缓存线程池,如果线程池大小超过...

    java 四种线程池实例

    2. **FixedThreadPool**: `Executors.newFixedThreadPool(nThreads)`创建一个固定大小的线程池,它维护的线程数量始终保持不变。当一个新任务提交而所有线程都在工作时,任务会被添加到队列中等待。这种线程池适合...

    java线程池常用方法.docx

    ExecutorService executorService = Executors.newFixedThreadPool(3); ``` - **newSingleThreadExecutor**:创建单个线程的线程池,确保所有任务按照指定顺序(FIFO)执行。 ```java ExecutorService ...

    java线程实例 各种小Demo

    - Executors.newFixedThreadPool(int nThreads):创建固定大小的线程池,线程数量不会改变。 - Executors.newSingleThreadExecutor():创建单线程的线程池,所有任务都在唯一的工作线程中按顺序执行。 - Executors....

    Apache MINA 线程模型配置

    filterChainBuilder.addLast("threadPool", new ExecutorFilter(Executors.newFixedThreadPool(5))); ``` 这里创建了一个固定大小的线程池,并将其作为 `ExecutorFilter` 的参数添加到 `IoFilterChain` 中。当有新...

    Java面试-线程.doc

    - **使用线程池**:从Java 5开始,可以使用ExecutorService接口及其工厂方法如`Executors.newFixedThreadPool(int nThreads)`、`Executors.newCachedThreadPool()`和`Executors.newSingleThreadExecutor()`创建...

    JAVA多线程学习笔记整理(csdn)————程序.pdf

    - **定长线程池**:Executors.newFixedThreadPool(int n),线程池大小固定,超出的线程请求会等待。 - **单线程线程池**:Executors.newSingleThreadPool(),线程池中只有一个线程,任务排队执行。 - **定时...

    Java 5_0 多线程编程实践

    ExecutorService pool = Executors.newFixedThreadPool(10); ``` - **自定义线程池**:除了使用预设的方法创建线程池外,还可以通过`ThreadPoolExecutor`类来自定义线程池的行为。 ```java ThreadPoolExecutor...

    面试知识点总结--线程.pdf

    在Java编程语言中,线程... - **使用ExecutorService**:自Java 5引入Executor框架后,推荐使用线程池来管理线程,例如`Executors.newFixedThreadPool(int nThreads)`、`Executors.newCachedThreadPool()`和`Executors....

    Vert.x线程模型揭秘

    ExecutorService internalBlockingPool = Executors.newFixedThreadPool( options.getInternalBlockingPoolSize(), new VertxThreadFactory("vert.x-internal-blocking-", checker, true) ); ``` #### 四、...

    Java Concurrent处理并发需求

    - **Executors**:这是一个工厂类,用于创建不同类型的ExecutorService实例。 - **newFixedThreadPool(int nThreads)**:创建一个固定线程数量的线程池。当有新的任务被提交时,如果线程池中的线程还没有达到...

    Android-Multithreaded-Programming-1

    1. **创建任务列表**:通过`Executors.newFixedThreadPool()`创建一个固定大小的线程池,该线程池维护一组预先创建好的工作线程。 2. **添加任务到列表**:将实现`Runnable`接口的任务对象添加到任务列表中,使用`...

    JAVA多线程框架.pdf

    在示例代码中,`Executors.newFixedThreadPool(2)`创建了一个固定大小为2的线程池,这意味着线程池最多同时运行两个线程。`ExecutorService.execute()`方法用于提交任务到线程池,即使在任务数量超过线程池大小时,...

    java线程池实例

    在实际开发中,Java还提供了一些预定义的线程池,如`Executors.newFixedThreadPool(int nThreads)`创建固定大小的线程池,`Executors.newSingleThreadExecutor()`创建只有一个线程的线程池等。这些预定义的线程池...

Global site tag (gtag.js) - Google Analytics