原创水平有限请谅解
虽然这几个参数我以前也有学习过,但是一直没有在源码级别进行证明,所以一直也没有写,但是今天群里有
朋友问的到,所以先按照官方手册的加上我自己的理解进行一下解释,以后一定要在源码级别进行下补充
使用MYSQL版本:5.7.14
操作系统平台:CentOS 6.5版本(最终)64位
一、理论基础
首先要理解几个参数我们必须要先知道下面的内容,注意下面内容并不深入,而且只是我自己的理解
1,什么是多线程
实际上MYSQL中的多线程就是POSIX那一套,比如也就是我们说的pthread族函数比如pthread_create, pthread_join, pthread_mutex_lock等等,相信有多线程编程基础
的朋友不会陌生,线程也叫轻量级进程(LWP)那么多线程有什么好处,相对于进程而言多线程共享了很多东西比如
1.文件描述符表
2.每种信号的处理方式
3.当前工作目录
4.用户ID和组ID
5.除栈以外的内存空间
其实我们在编程的时候多线程通信都是通过非栈以外的内存进程的,比如堆空间,既然线程能够共享这麽多资源,不管是线程的创建,上下文切换,线程间通信都
变得方便了(注意共享是方便了但是对临界区的管理需要使用类似互斥rwlock之类的锁来实现)。接下来我们就要来讲讲线程间上下文切换
同时要记住一点线程是CPU调度的最小单位,进程是资源分配的最小单位。配上一张图
MYSQL INNODB innodb_thread_concurrency相关参数理解