java线程池的简单实现
最近为了加强对线程池的理解,写了一个简单的线程池,实现思路是实现ThreadManager类,他拥有一个任务队列LinkedBlockingDeque
package org.cylx.ml.core.thread;
import java.io.IOException;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingDeque;
/**
*
* @author root
*
*/
public class ThreadManager {
private LinkedBlockingDeque
private ConcurrentHashMap
private ConcurrentHashMap
private boolean close = false;
private Object isWait = new Object();// 是否等待
private int size;
public void execute(Runnable task) {
tasks.add(task);
synchronized (isWait) {
this.isWait.notifyAll();
}
}
public void close() {
this.close = true;
while (true) {
int size = working.size() + free.size();
if (size == this.size) {
break;
} else {
try {
Thread.sleep(200);
} catch (Exception ex) {
}
}
}
Set
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
