连接池原理

为什么使用连接池?

普通模式下每次操作都需要反复创建销毁mysql连接请求。每个连接请求都需要 经历三次握手、四次挥手的消耗操作。但是如果请求量一旦过大那么服务的资源消 耗、时间处理肯定会非常的大。
所以连接池的好处就是减少重复的连接,节省资源的开销。进而复用每个连接。
那些场景下可以用呢?
高并发、微服务场景下,可以根据业务请求类型划分为写连接池或者读连接池。 swoole采用什么实现连接池? 协程+通道,构建连接池 Swoole为什么可以实现连接池而普通模式不行 Swoole是常驻内存,建立后可以重复使用,协程执行完毕只是回收协程的资源, 而对于通道的对象是不会有影响的。而普通模式下每个请求执行完毕后整个连接过 程中的资源都全部被释放了。


什么是协程?


协程可以简单理解为线程,只不过这个线程是用户态的,不需要操作系统参与, 创建销毁和切换的成本非常低,和线程不同的是协程没法利用多核cpu的,想利 用多核cpu需要依赖 Swoole 的多进程模型。 什 么 是 channel channel 可以理解为消息队列,只不过是协程间的消息队列,多个协程通过 push 和 pop 操作生产消息和消费消息,用来协程之间的通讯。需要注意的是 channel 是没法跨进程的,只能一个 Swoole 进程里的协程间通讯,最典型的应用是连接 池和并发调用。


什么是线程安全、线程不安全?


线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行 保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一 致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数 据是脏数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值