MyBatis常见面试题5:Java客户端中的一个Connection问题

372人浏览 / 0人评论

问题:
Java客户端中的一个Connection是不是在MySQL中就对应一个线程来处理这个链接呢?

答案:
不是。凡是从线程思考问题的人,一般都是被Java技术的多线程思想所禁锢了,其实在高性能服务器端端开发底层往往靠io复用来处理,这种模式就是:单线程+事件处理机制。在MySQL里面往往有一个主线程,这是单线程(与Java中处处强调多线程的思想有点不同哦),它不断的循环查看是否有socket是否有读写事件,如果有读写事件,再从线程池里面找个工作线程处理这个socket的读写事件,完事之后工作线程会回到线程池。所以:Java客户端中的一个Connection不是在MySQL中就对应一个线程来处理这个链接,而是由监听socket的主线程+线程池里面固定数目的工作线程来处理的。

全部评论

晴天下起了小雨
2017-10-01 18:00
很喜欢,果断关注了
wjmyly7336064
2017-10-01 18:00
相当实用,赞美了
橘大佬
2017-10-01 18:00
就是有些细节再到位点就好了…