java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类
[1].[代碼] TestThreadPool.java
package net.oschina.tester;
import java.io.Serializable;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class TestThreadPool {
private static int produceTaskSleepTime = 2;
private static int consumeTaskSleepTime = 2000;
private static int produceTaskMaxNumber = 10;
public static void main(String[] args) {
// 構造一個線程池
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 4, 3,
TimeUnit.SECONDS, new ArrayBlockingQueue(2),
new ThreadPoolExecutor.DiscardOldestPolicy());
for (int i = 1; i <= produceTaskMaxNumber; i++) {
try {
// 產生一個任務,并將其加入到線程池
String task = "task@ " + i;
System.out.println("put " + task);
threadPool.execute(new ThreadPoolTask(task));
// 便于觀察,等待一段時間
Thread.sleep(produceTaskSleepTime);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 線程池執行的任務
*
* @author hdpan
*/
public static class ThreadPoolTask implements Runnable, Serializable {
private static final long serialVersionUID = 0;
// 保存任務所需要的數據
private Object threadPoolTaskData;
ThreadPoolTask(Object tasks) {
this.threadPoolTaskData = tasks;
}
public void run() {
// 處理一個任務,這里的處理方式太簡單了,僅僅是一個打印語句
System.out.println("start .." + threadPoolTaskData);
try {
// //便于觀察,等待一段時間
Thread.sleep(consumeTaskSleepTime);
} catch (Exception e) {
e.printStackTrace();
}
threadPoolTaskData = null;
}
public Object getTask() {
return this.threadPoolTaskData;
}
}
}
總結
以上是生活随笔為你收集整理的java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比亚迪智能手表亮相:一键控车 可完美替代
- 下一篇: java安全增加url_规范化Strin