关于synchronized(locker)的问题

来源:10-2 并发客户端BUG修复与性能优化-1

慕尼黑3917127

2019-02-17

synchronized (locker) {
            locker.set(true);
            try {
                xxxxxx...
            } finally {
                locker.set(false);
                locker.notify();
            }
        }
synchronized (locker) {
            if (locker.get()) {
                try {
                    locker.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

关于此处的锁定,由于两个都被synchronized (locker)包裹,应该是同步的呀,那么下面这个wait的片段 locker.get()什么时候会是true的情况,好像都不会有这种时候呀

写回答

1回答

Qiujuer

2019-02-17

这个是在select方法轮训中会导致设置为true的情况。

具体表现为,进入轮训时会设置为true,完成后设置为false,与这边互斥。

1
3
宝儿姐_
回复
Qiujuer
噢噢,这样的话,就能理解一点了
2019-11-07
共3条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程