iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql中Thread Manager的作用是什么
  • 768
分享到

Mysql中Thread Manager的作用是什么

2024-04-02 19:04:59 768人浏览 泡泡鱼
摘要

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

今天就跟大家聊聊有关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的作用是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql中Thread Manager的作用是什么

本文链接: https://www.lsjlt.com/news/58234.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Mysql中Thread Manager的作用是什么
    今天就跟大家聊聊有关Mysql中Thread Manager的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  &nb...
    99+
    2024-04-02
  • Mysql中Connection Manager的作用是什么
    这篇文章给大家介绍Mysql中Connection Manager的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1.连接的线程数    ...
    99+
    2024-04-02
  • Python中Thread类的作用是什么
    本篇文章为大家展示了Python中Thread类的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python Thread类表示在单独的控制线程中运行的活动。有两种方法可以指定这种活动,给...
    99+
    2023-06-17
  • Python中thread模块的作用是什么
    Python中thread模块的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型...
    99+
    2023-06-14
  • Tomcat中Manager的用法是什么
    Tomcat中的Manager是一个组件,用于管理用户会话(sessions)的创建、维护和销毁。Manager在Tomcat中用来...
    99+
    2024-04-03
    Tomcat
  • mysql中str_to_date的作用是什么
    小编给大家分享一下mysql中str_to_date的作用是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中的st...
    99+
    2024-04-02
  • mysql中mysqld_multi的作用是什么
    这篇文章将为大家详细讲解有关mysql中mysqld_multi的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 _multi是用来管理...
    99+
    2024-04-02
  • mysql中MVCC的作用是什么
    本篇文章为大家展示了mysql中MVCC的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、说明多版并发控制MVCC是MySQL InnoDB存储引擎实现隔离等级的具体方法,用于实现提交阅...
    99+
    2023-06-15
  • mysql中limit的作用是什么
    在MySQL中,LIMIT子句用于限制查询结果集的数量。通过使用LIMIT子句,可以指定从查询结果中返回的行数的数量,并且可以指定起...
    99+
    2024-04-09
    mysql
  • mysql中json_search的作用是什么
    在MySQL中,JSON_SEARCH函数用于查找指定JSON文档中包含特定路径和值的元素。它的语法如下: JSON_SEARCH(...
    99+
    2024-04-09
    mysql
  • mysql中event的作用是什么
    MySQL中的事件(Event)是一种在数据库内部实现的调度任务工具,用于执行定期性的SQL语句或存储过程。通过创建事件,您可以指定...
    99+
    2024-04-09
    mysql
  • mysql中nextval的作用是什么
    在MySQL中,没有内置的nextval函数,这是因为MySQL没有像Oracle或PostgreSQL这样的序列对象。在MySQL...
    99+
    2024-04-09
    mysql
  • mysql中regex的作用是什么
    在MySQL中,REGEXP函数用于在查询中使用正则表达式来匹配文本。通过使用正则表达式,您可以更灵活地进行模糊搜索和匹配文本。这使...
    99+
    2024-04-09
    mysql
  • mysql中connection的作用是什么
    在MySQL中,connection是指与数据库建立的连接。连接用于建立与数据库的通信,执行SQL查询、插入、更新和删除等操作。通过...
    99+
    2024-04-02
  • mysql中basedir的作用是什么
    在MySQL中,basedir参数指定了MySQL安装的根目录的路径。该参数通常用于指定MySQL服务器的安装目录,以便MySQL能...
    99+
    2024-03-01
    mysql
  • mysql中current_date的作用是什么
    在MySQL中,CURRENT_DATE函数返回当前日期的值,格式为’YYYY-MM-DD’。它通常用于获取当前日期并将其用作查询或...
    99+
    2024-03-01
    mysql
  • mysql中myisam的作用是什么
    MyISAM 是 MySQL 中的一种存储引擎,它的作用是用于管理数据库表的存储和检索。使用 MyISAM 存储引擎的表在磁盘上以单...
    99+
    2024-03-15
    mysql
  • mysql中log_bin的作用是什么
    在MySQL中,log_bin是二进制日志文件的名称,用于记录所有对数据库进行更改的操作,如插入、更新、删除等。这些二进制日志文件可...
    99+
    2024-05-14
    mysql
  • mysql中repeat的作用是什么
    本篇文章为大家展示了mysql中repeat的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。repeat循环类似Java中的do while循环,直到条件不满足才会结束循环。语法:[别名:...
    99+
    2023-06-14
  • MySQL中Timeout的作用是什么
    今天就跟大家聊聊有关MySQL中Timeout的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。connect_timeout、intera...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作