java-同步的价格是多少?

我正在使用java.nio api编写网络应用程序.我的计划是在一个线程上执行I / O,并在另一个线程上处理事件.但是,要做到这一点,我需要同步读取/写入,以便永不满足竞争条件.

请记住,我需要同时处理数千个连接,同步是否值得,还是应该使用单个线程进行I / O和事件处理?

解决方法:

您正在执行哪种事件处理?可能的瓶颈在哪里?你还有瓶颈吗?

从最简单的实现开始,并在了解瓶颈后优化瓶颈.

如果您发现网络IO线程由于花费太多时间进行事件处理而无法读取足够快的速度,则创建一个缓冲区队列,与之同步,并让事件处理线程通过该队列工作.

您可能想要设置队列大小的限制,以免最终不会耗尽内存.如果网络线程即将超载队列,请等待直到有更多空间.

过早的优化对任何人都不好玩.

但是,要回答您的问题,两个线程之间的同步不太可能成为瓶颈,并且您不必担心其开销.

上一篇:spring boot+SSM项目中JSP页面遇到的问题


下一篇:20200121-LC-Can You Guess the Secret?