Leaf icon indicating copy to clipboard operation
Leaf copied to clipboard

waitAndSleep的目的是尽可能让接下去执行的时候号段预加载线程已经执行完了吗

Open nju-Nicko opened this issue 5 years ago • 2 comments

 private void waitAndSleep(SegmentBuffer buffer) {
        int roll = 0;
        while (buffer.getThreadRunning().get()) {
            roll += 1;
            if(roll > 10000) {
                try {
                    TimeUnit.MILLISECONDS.sleep(10);
                    break;
                } catch (InterruptedException e) {
                    logger.warn("Thread {} Interrupted",Thread.currentThread().getName());
                    break;
                }
            }
        }
    }

如果是,这种方式可靠性高否

nju-Nicko avatar Sep 04 '20 18:09 nju-Nicko

阅读代码时对这里也有疑问,做了调整。将waitAndSleep的调用往后挪了几行,写到 if (value < segment.getMax()) { return value; } 这块代码的后面了。这里计算10000次加法,耗时在1ms下,然后sleep 10ms也太长了。我把这里改成了 最多sleep10次,然后每次sleep2ms

zylzhangyilin avatar Sep 07 '20 08:09 zylzhangyilin

我是都降低一倍处理

olio09 avatar Oct 29 '20 08:10 olio09