关于线程池优化的一个问题和想法

来源:5-14 使用伪异步IO改进多人聊天室

qq_慕圣9338304

2020-07-20

老师,就是我看到你视频里面用的fixedThreadPool,核心线程数等于最大线程数,然后新上限线的用户必须等之前有人下线才能上去聊天,但是我觉得我作为一个用户来说,其实体验就不太好了,要是每次那10个位子都被人先占了,那我岂不是一直都进不去?而且就算能进去,我还得等一段时间,要是有急事的话就很不友好了,而且如果我只是上去一下下就下来,但是我又在队列很后面的话,就更惨了。
我想是不是能用非公平锁试着改进一下插队问题?而且,能不能用synchronousqueue作为线程池的队列参数,然后统计出活跃群友作为核心线程数,然后 min(群总人数,系统资源允许最大人数) 为最大线程数,这样我觉得其实就解决了等待问题。
不知道我的想法对不对,请老师指正。么么哒

写回答

1回答

Stannum

2020-08-08

同学好~这个思路很有意思,可见你对于项目的思考~怎样已有限的资源服务尽可能多的客户请求,这是所有大流量系统都致力于优化的问题。在我们这个聊天室例子里,我们也有很大的扩展空间来增加更多的机制和功能。比如说,可以强制踢出长时间不活跃的客户等等。欢迎你和各位同学提出你们的想法,对于项目扩展的思考,我们会参考大家的想法,争取在后续课程更新升级时,尽量为大家带来更多的项目扩展内容~

0
0

系统学习Java网络编程 深度理解BIO/NIO/AIO

对比式学习助你真正理解BIO/NIO/AIO三大网络编程模型。

880 学习 · 148 问题

查看课程