「这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战」。
资源限制
什么是资源限制?
资源限制就是在并发编程下程序的运算速度受限于计算机软件或者硬件资源的限制。
资源限制的具体例子
软件资源
- 数据库连接数。
- socket连接数。
- 线程池大小。
- 等等
硬件资源
- 带宽上传/下载速度。
- 硬盘读写速度。
- CPU处理速度。
- 运行内存内存大小。
- 等等
资源限制会引发的问题?
可能会导致程序在执行多线程任务时由于资源限制的原因,某个线程执行速度过慢或者线程切换速度过慢等等问题而导致运行速度反而不如单线程执行该任务速度。
如何解决资源限制引发的问题?
对应硬件资源
我们可以搭建计算机集群来解决硬件资源上的不足。
对应软件资源
我们可以使用资源池将资源复用,比如Redis会对IO进行复用来缓解软件资源的限制。
资源限制下的并发编程
根据不同的任务来分配不同的并发度,有些任务不需要太多的线程去执行。所以我们需要找到他们之间的平衡。