我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql中Thread Manager的作用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql中Thread Manager的作用是什么

今天就跟大家聊聊有关Mysql中Thread Manager的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

    1.线程创建函数

    大家知道,Mysql现在是插件式的存储引擎,只要实现规定的接口,就可实现自己的存储引擎。故Mysql的线程创建除了

出现在主服务器框架外,存储引擎也可能会进行线程的创建。通过设置断点,在我调试的版本中,发现了两个创建线程的函数。

    os_thread_create是存储引擎innobase的线程函数,先搁浅不研究了,重点看下pthread_create,首先看下其源码。

map->func=func; map->param=param;

hThread=(HANDLE)_beginthread((void( __cdecl *)(void *)) pthread_start, attr->dwStackSize ? attr->dwStackSize : 65535, (void*) map);

上面代码首先构造了一个map结构体,成员分别是函数地址和传入参数。然后调用操作系统的接口,_beginthread,但是执行函数并不是传入的函数——func,而是pthread_start,参数为map。继续跟踪pthread_start。

func=((struct pthread_map *) param)->func

   可以看出,pthread_start中调用了map的func元素,作为真正执行的函数体。OK,创建线程的函数跟踪到此!

   2.服务器启动时创建了哪些函数?

   通过在两个创建线程的地方设置断点,总结了下,在服务器启动时,创建了如下的线程。

pthread_create创建的线程

innobase的os_thread_create创建的线程:

    还可以在调试过程中,通过暂停来看此时服务器中的线程,如下图:

三、线程缓冲池

        Mysql支持线程缓存,在多线程连接模式下,如果连接断开后,将这个线程放入空闲线程缓冲区,在下次有连接到来时,

先去缓冲池中查找是否有空闲线程,有则用之,无则创建。启动时可以设置线程缓冲池的数目:

      在一个连接断开时,会调用cache_thread函数,将空闲的线程加入到cache中,以备后用。如下:

cached_thread_count < thread_cache_size

pthread_cond_signal(&COND_flush_thread_cache);

    上面我们的启动参数设置线程缓冲区为10,此时对应代码里面的thread_cache_size = 10,cached_thread_count记录

了此刻cache中的空闲线程数目,只有在cache未满的情况下,才会将新的空闲线程加入缓冲池中。加入到缓冲区其实就是将线

程挂起,pthread_cond_wait函数便是线程等待函数,在此函数中,会调用WaitForMultipleObjects进行事件等待。具体源码

如下:

result= WaitForMultipleObjects(2, cond->events, FALSE, timeout);

    此处是等待时间,何处进行事件通知呢?我们再次来到上篇所提及的为新的连接创建线程的代码中:

pthread_cond_signal(&COND_thread_cache);

看完上述内容,你们对Mysql中Thread Manager的作用是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql中Thread Manager的作用是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中Thread类的作用是什么

本篇文章为大家展示了Python中Thread类的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python Thread类表示在单独的控制线程中运行的活动。有两种方法可以指定这种活动,给
2023-06-17

Python中thread模块的作用是什么

Python中thread模块的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的数据类型有哪些?python的数据类型:1. 数字类型,包括int(整
2023-06-14

Tomcat中Manager的用法是什么

Tomcat中的Manager是一个组件,用于管理用户会话(sessions)的创建、维护和销毁。Manager在Tomcat中用来处理用户会话的生命周期,包括创建新会话、维护现有会话和销毁过期会话等。Manager提供了一套接口和方法,使
Tomcat中Manager的用法是什么
2024-04-03

java中Thread Dump指的是什么

这篇文章将为大家详细讲解有关java中Thread Dump指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3
2023-06-14

mysql中json_search的作用是什么

MySQL中JSON_SEARCH函数JSON_SEARCH函数在JSON文档中搜索指定键的值。它支持两种路径模式:key(仅匹配键)和value(匹配键和值)。通过高级用法如模糊搜索、正则表达式和返回多个结果,它提供了处理复杂JSON数据的强大工具。优点:高效、灵活、可扩展;缺点:语法复杂、可能存在性能开销。
mysql中json_search的作用是什么
2024-04-12

mysql中json_array的作用是什么

MySQLJSON_ARRAY函数JSON_ARRAY()函数将一系列值转换为JSON数组,方便创建、更新或检索JSON数据。语法为JSON_ARRAY(value1,value2,...,valueN),值可以是字符串、数字、布尔值、NULL或JSON对象。它可用于:创建JSON数组将现有值转换为JSON数组更新JSON数组检索JSON数组元素JSON_ARRAY()函数简单易用,可高效处理大型数据集,提高JSON数据灵活性,适用于存储多个值、提取JSON数组、修改数组元素以及与外部JSON数据源交互的
mysql中json_array的作用是什么
2024-04-10

mysql中MVCC的作用是什么

本篇文章为大家展示了mysql中MVCC的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、说明多版并发控制MVCC是MySQL InnoDB存储引擎实现隔离等级的具体方法,用于实现提交阅
2023-06-15

MySQL中Like的作用是什么

MySQL中Like的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Like是什么意思?1、Like算作MySQL中的谓词,其应用与is、=、>和
2023-06-14

mysql中benchmark的作用是什么

在MySQL中,BENCHMARK() 函数用于执行一个表达式多次以进行性能测试。该函数可以指定要执行的测试次数以及要重复执行的表达式。它的语法如下:BENCHMARK(count, expr)其中 count 是要执行的次数,expr
mysql中benchmark的作用是什么
2024-04-23

mysql中tostring的作用是什么

在MySQL中,没有名为toString的函数。如果您想将一个值转换为字符串,可以使用内置的CAST()函数或CONVERT()函数。这两个函数可以将不同的数据类型转换为字符串类型。例如,您可以将一个整数转换为字符串或将一个日期转换为字符串
mysql中tostring的作用是什么
2024-04-23

mysql中profile的作用是什么

在MySQL中,PROFILE是一个用于分析查询语句性能的工具。通过使用PROFILE,可以查看查询语句的执行计划、扫描行数、扫描时间等信息,帮助用户优化查询语句,提高查询性能。PROFILE可以显示查询语句执行时的各种统计信息,包括查询时
mysql中profile的作用是什么
2024-03-14

mysql中socket的作用是什么

在MySQL中,socket是一种用于连接数据库的通信协议。当客户端程序连接到MySQL服务器时,它们通过socket进行通信。Socket是一种在网络上进行数据传输的通用技朶,它允许客户端和服务器之间进行双向通信,并且可以保持连接状态。在
mysql中socket的作用是什么
2024-03-15

mysql中countif的作用是什么

在MySQL中,没有内置的COUNTIF函数。但是,可以使用SELECT语句结合SUM和CASE语句来实现类似COUNTIF的功能,例如:SELECT SUM(CASE WHEN condition THEN 1 ELSE 0 END)
mysql中countif的作用是什么
2024-04-09

mysql中nextval的作用是什么

在MySQL中,没有内置的nextval函数,这是因为MySQL没有像Oracle或PostgreSQL这样的序列对象。在MySQL中,可以使用AUTO_INCREMENT关键字来为表的某一列设置自增长的功能,以便在插入新记录时自动生成唯一
mysql中nextval的作用是什么
2024-04-09

mysql中when的作用是什么

在MySQL中,"WHEN"是用于条件语句中的关键字,用于定义条件表达式。具体来说,"WHEN"通常在以下情况下使用:在"CASE"语句中,用于定义每个"WHEN"子句的条件表达式。"CASE"语句根据条件表达式的结果选择不同的路径执行。
mysql中when的作用是什么
2024-04-09

MySQL中administrator的作用是什么

在MySQL中,administrator(管理员)是指拥有最高权限的用户,拥有对数据库服务器进行管理和配置的权限。管理员通常拥有对所有数据库和表进行操作的权限,可以创建、删除和修改数据库、表、用户以及其他对象,也可以对数据库服务器进行备份
MySQL中administrator的作用是什么
2024-04-09

编程热搜

目录