所在的位置: mysql >> mysql发展 >> MySQL线程池源码分析

MySQL线程池源码分析

安徽白癜风QQ交流群 http://liangssw.com/bozhu/12678.html

源码版本:PerconaServerforMySQL5.7.19

MySQL的连接处理分为3类,分别是一个线程处理所有连接、一个连接对应一个线程,以及线程池,这3种处理连接的方式被封装成C++类,他们有一个共同的基类Connection_handler。

One_thread_connection_handlerPer_thread_connection_handlerThread_pool_connection_handler本文简要分析Thread_pool_connection_handler类的实现,如有错误,欢迎批评指正。先看下线程池相关代码逻辑的调用关系:

main主函数mysqld_main初始化环境Connection_handler_manager::init()初始化连接管理类network_init初始化网络mysqld_socket_acceptor-connection_event_loop();等待新的连接请求事件voidConnection_handler_manager::process_new_connection(Channel_info*channel_info)处理新的连接boolThread_pool_connection_handler::add_connection(Channel_info*channel_info)新的连接放入队列queue_put连接放入队列wake_or_create_thread唤醒或者创建新的工作线程create_worker创建新的工作线程worker_mains线程函数handle_event处理事件threadpool_process_request处理请求do_


转载请注明:http://www.aierlanlan.com/tzrz/3623.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了