Code前端首页关于Code前端联系我们

多线程同时读取mysql数据库,多线程发送数据

terry 2年前 (2023-09-30) 阅读数 40 #Mysql
文章标签 Mysql

本文内容列表:

  • 1、如何保证多线程从mysql数据库查询到的数据不重复
  • 2. MYSQL数据库如何实现多线程
  • 3、如何实现MYSQL数据库的多线程访问

如何保证多线程的mysql数据库请求的数据不重复

Mysql 中可能会出现脏号、不重复号和鬼号。 Mysql的默认设置是可重复读取,即一次事务中不会读取不同的数据。

您可以进行以下操作:

1)打开两个客户端,并为两个客户端设置RR;

2)事件中,对特定函数进行查询,查找特定数据;例如某个字段的version=1的数据存在;

3)第二个事件,删除版本1的数据;删除后,询问2所属的事务中数据是否没有改变,或者是否还有版本1的数据;

4)当我们继续更新2所属事件的数据时,发现无法更新。我们可以清楚地看到数据版本=1;

缓存一致性:

缓存一致性,什么意思?持续的?与数据库一致,外部查询每时每刻都是一致的;那么缓存和数据库应该先更新哪一个呢?也许有人认为我可以先更新数据库,然后再更新缓存,对吗?但你有没有想过这个问题?

用户支付成功后,会在数据库中更新,但是什么呢?您仍然显示缓存的未付款。当用户频繁点击,数据库压力过大,没有时间同步到缓存时,你是否迷茫?这是典型的不一致。如果这次用户又​​付款了,你告诉他已经付款了,他会骂死你

你该怎么办?我们可以通过先更新缓存,然后更新数据库来做到这一点。所以有什么问题?

1) 缓存更新成功,但是数据库更新失败,被其他并发线程使用

2) 缓存删除成功,但是数据库更新失败,也会导致后面数据不一致

MYSQL 数据库有多少个?主题

1。使用线程互斥来同步数据库操作

2。数据库从事件表

3 获取信息。以共享模式而不是独占模式打开数据库。

创建mysql连接表,添加

临界区

。表节点是这样的(mysqlcon,bool),大小根据实际情况确定。我使用 10 个连接。

当要执行mysql函数时,从表中删除空mysql连接并将bool值更改为true。使用后改false。关键部分的任务是确保同一时刻只有一个线程可以使用mysql连接。 。

如何实现MYSQL数据库的多线程访问

其实最简单的方法就是使用定时器控件。定时器控制器基本上是一个线程封装

所以你可以使用两个定时器控制器来模拟两个线程

或者使用两个后台工作者控制器,这样更现实,不需要非调度触发器

一些使用是我模式下的教程

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门