Commit c1757f03 authored by yanzg's avatar yanzg

升级新版本

parent 85b2fda1
......@@ -4,10 +4,7 @@ import com.yanzuoguang.util.log.Log;
import com.yanzuoguang.util.thread.ThreadHelper;
import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.*;
import java.util.function.Consumer;
/**
......@@ -20,7 +17,7 @@ public class YzgTimeout {
public static final int TIME_OUT_DEFAULT = 15 * 1000;
public static final int TIME_OUT_TIP = 10 * 1000;
private static ExecutorService executorService;
private static final Queue<TimeInfo> queueInfos = new ArrayBlockingQueue<>(Integer.MAX_VALUE);
private static final Queue<TimeInfo> queueInfos = new ConcurrentLinkedQueue<>();
/**
......@@ -83,7 +80,9 @@ public class YzgTimeout {
private static TimeInfo getTimeInfo(int tipOutDefault, int timeOutTip, YzgTimeoutHeart heart) {
init();
TimeInfo timeInfo = new TimeInfo(tipOutDefault, timeOutTip, heart);
synchronized (queueInfos) {
queueInfos.add(timeInfo);
}
return timeInfo;
}
......@@ -106,9 +105,15 @@ public class YzgTimeout {
}
private static void runItem() {
int size = queueInfos.size();
int size;
synchronized (queueInfos) {
size = queueInfos.size();
}
for (int i = 0; i < size; i++) {
TimeInfo poll = queueInfos.poll();
TimeInfo poll;
synchronized (queueInfos) {
poll = queueInfos.poll();
}
long end = System.currentTimeMillis();
long time = end - poll.getStart();
if (time > poll.getTimeMax()) {
......@@ -120,10 +125,12 @@ public class YzgTimeout {
}
}
if (!poll.isRun()) {
synchronized (queueInfos) {
queueInfos.add(poll);
}
}
}
}
}
class TimeInfo {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment