Map的get方法应该不会抛异常吧?

来源:7-11 NIO服务器Thread优化-5

宝儿姐_

2019-10-21

    private static void handleSelection(SelectionKey key, int keyOps,
                                        HashMap<SelectionKey, Runnable> map,
                                        ExecutorService pool) {
        // 重点
        // 取消继续对keyOps的监听
        key.interestOps(key.readyOps() & ~keyOps);

        Runnable runnable = null;
        try {
            runnable = map.get(key);
        } catch (Exception ignored) {

        }

        if (runnable != null && !pool.isShutdown()) {
            // 异步调度
            pool.execute(runnable);
        }
    }
写回答

1回答

Qiujuer

2019-10-22

当初做压测的时候出现过异常,似乎是因为多线程竞争导致的问题。后来规范化线程后应该是解决好了。

或者也可以换成线程安全的Map即可。

0
0

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

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

2316 学习 · 476 问题

查看课程