MySQL解析(1)---mysqld中的线程
来源:互联网 发布:魔蝎数据怎么填 编辑:程序博客网 时间:2024/06/07 05:49
mysqld启动后, 除主线程外,会创建几个新线程:大约在mysqld.cc的3500行左右,有这样的语句:
start_signal_handler();
.....
create_shutdown_thread();
create_maintenance_thread();
它们分别启动如下线程:
1)signal handle thread
这个线程的作用在于截获多种信号,包括THR_SERVER_ALRM,THR_CLIENT_ALRM,以及各种系统信号,如SIGTERM,SIGKILL等等。我们前面说过,主线程是这样的一个循环:
while(!abort_loop){
select(...);
accept(...);
create_new_thread(...);
}
这里的标志变量abort_loop就是在signal_handle线程接收到SIGTERM后改变为1的。
2)shutdown thread
在Linux上没有这个线程,create_shutdown_thread()是一个空函数。在Windows上,这个线程自创建后就等待一个shutdown event。在此之后它将调用kill_server来关闭mysqld
3)manager thread
这个线程的主要作用是复置已经打开table的flush间隔时间,以及在关闭mysqld时,flush已经打开的table。
这里所说的线程,是指mysqld在 --skip-innodb的情形的线程状况。innodb一般会创建7个线程,包括4个io线程,2个monitor线程(error monitor,lock timeout monitor),和master线程。
- MySQL解析(1)---mysqld中的线程
- redhat7安装mysql-server(mysqld)
- mysql.sock -> /var/run/mysqld/mysqld.sock
- mysql5.1绿色版安装教程以及mysql相关命令(解决mysqld-nt不成功)
- mysql.server,mysqld_safe,mysqld启动区别(转载收藏)
- MySQL学习笔记-04_Server_Config(mysqld --verbose --help)
- mysql压力测试mysqld.exe
- centos7 mysql 启动mysqld.service
- Linux杀掉MySQL进程(关键词:Linux/MySQL/杀死进程/mysql/mysqld)
- 错误: MySQL server through socket '/var/run/mysqld/mysqld.sock‘
- Linux Mysql无法启动 /var/run/mysqld/mysqld.sock
- linux安装mysql提示mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
- linux安装mysql提示mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
- linux 下安装 MySQL 经常出现各种问题终极解决方法 /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.pid
- bin/mysqld: error while loading shared libraries: libnuma.so.1: 安装mysql
- windows环境中mysql忘记root密码的解决办法 (不用mysqld-nt.exe)
- windows环境中mysql忘记root密码的解决办法 (不用mysqld-nt.exe)
- windows环境中mysql忘记root密码的解决办法 (不用mysqld-nt.exe)+找不到password
- Slice 2 on Solaris system
- 用VB 6封装ASP代码, 制作DLL组件
- 用DateTimeFormatInfo格式化日期时间(C#)
- 什么是Smalltalk
- 使用JavaScript动态增加表格的行与列
- MySQL解析(1)---mysqld中的线程
- java ftp客户端源代码
- 日历控件(收藏)
- PROGRAMING FEELING:抵制诱惑,灵活规划
- 发改委回应电力集团涨电价要求 称仍需观察
- c# 面试题1
- C++操作DB+FILE
- rmp命令详解
- Beijing tour