3.资源限制

什么是资源限制

资源限制是指在并发编程是,程序的执行速度受限于计算机硬件资源和软件资源。

如硬件: 上传和下载的速度。磁盘读写速度。CPU的处理速度。软件:有数据库的连接、socket连接数。

资源限制的引发的问题

并发编程中,将代码执行速度加快的原则是将代码中串行执行的部分变成并发执行,但是如果将某段创新的代码并发执行,因受限于资源,仍然在串行执行。这是程序不仅不会加快执行,反而会更慢,因为伤心文切换和资源调度的时间。

如 之前看到一段程序使用多线程在办公网并发地下载和处理数据时,导致cpu利用率达到100%,几个小时不能运行完成任务,后来修改成单线程,一个小时就执行完成了。

如何解决资源限制

硬件:可以考虑使用集群并行执行程序。

如:

不同机器处理不同数据。数据ID%机器数

软件:可以考虑资源池将资源复用。

如:连接数据库将数据库和Socket连接复用,或者调用对方webservice接口获取数据时,只建立一个连接。

如何在资源限制的情况下,让程序执行的更快?

根据不同的资源限制调整程序的并发度

猜你喜欢

转载自www.cnblogs.com/tianzhiyun/p/9339205.html
3.