【代码块】防并发、防重复执行

来源:互联网 发布:有关数控铣床编程书籍 编辑:程序博客网 时间:2024/05/17 00:04

有些时候,防止一段代码块正在执行的时候重复执行,或防止其并发执行,可采用以下手段进行限制:

手段一:

private volatile AtomicBoolean working = new AtomicBoolean(false);    void doSomeThing() {        if (working.getAndSet(true)) return;        try {            //doSomeThings();        } catch (Exception e) {        } finally {            working.getAndSet(false);        }    }    boolean isDoSomeThing() {        return working.get();    }

手段二:

private ReentrantLock lock = new ReentrantLock();    void doSomeThing() {        if (!lock.tryLock()) return;        try {            //doSomeThings();        } catch (Exception e) {        } finally {            lock.unlock();        }    }    boolean isDoSomeThing() {        return lock.isLocked();    }



原创粉丝点击