为什么 MySQL 使用多线程,而 Oracle 和 PostgreSQL 使用多进程

为什么 MySQL 使用多线程,而 Oracle 和 PostgreSQL 使用多进程,第1张

首先要明白县城和进程的区别和关系

一个进程至少拥有一个线程,一个线程只属于一个进程。

进程是拥有资源和调度的基本单位,线程是调度的基本单位。

进程独立拥有内存,线程共享所属进程的内存。

ORACLE在windows上也是多线程

传统的unix系统,早期没有提供多线程,只有多进程。linux是最近的版本才加入多线程支持,以前一直都是多进程。windows很早就支持多线程,本地应用大部分也是多线程。因此oracle在windows上一直都是多线程,在unix上才是多进程。多进程的好处是,一个进程崩溃不会影响其他进程,多线程的好处是不需要共享内存这样的手段来访问数据库缓冲区。mysql很可能是从windows发站起来的,pg和oracle都是最早从unix发站起来的,因此前者是多线程,后两者是多进程。

最根本的原因就如方圆说的,主要是当年 *** 作系统对线程支持不给力,而MySQL是特例,因为开发者喜欢挑战(不过事实上,那个时候的线程支持已经基本完善了。MySQL后于Oracle和POSTGRES)

希望能帮到您!

1。通过线程的互斥来同步 *** 作数据库

2。数据库采用事务处理表中的数据

3。采用共享方式打开数据库,不是以独占方式打开数据库

建立一个mysql连接表加上一个临界区,表结点是这样的(mysqlcon,bool),根据实际情况定大小。我用的是10个连接。

当要进行mysql *** 作时,就从表中取出一个闲置的mysql连接,并把bool量改为true,使用完后改成false,临界区的做用是保障一个mysql连接一次只能被一个线程使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8447439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存