python限制最大线程数(不一样的方法)
实际工作中会遇到有成千上万个任务想使用多线程来完成,而计算机无法同时处理这么多线程,通常来说会因为内存消耗完而无法创建新的线程。
在诸多大佬的博客中找到如下解决方案:
import threading
import timesem=threading.Semaphore(4) #限制线程的最大数量为4个def gothread():with sem: #锁定线程的最大数量for i in range(5):print(threading.current_thread().name,i)time.sleep(1)for i in range(5000):threading.Thread(target=gothread).start()
但是该方案无法解决我遇到的问题,内存依然会沾满。通过分析,锁定信号的变量sem在线程内阻塞,等待前面的线程执行结束。就是说实际上有多上任务就会开多少线程,只是超过限制的部分线程在线程内阻塞。内存依然会被消耗殆尽。为了控制最大线程数,达到最大线程时应在线程外阻塞,有线程结束后再创建新线程,改进如下:
import threading
import timesem=threading.Semaphore(4) #限制线程的最大数量为4个def gothread():for i in range(5):print(threading.current_thread().name,i)time.sleep(1)sem.release()for i in range(5000):sem.acquire()threading.Thread(target=gothread).start()
python限制最大线程数(不一样的方法)相关推荐
- python判断回文数字,Python判断回文数的三种方法实例
需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...
- linux下查看线程数的几种方法
1. cat /proc/${pid}/status 2.pstree -p ${pid} 3.top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid} t ...
- python获取pdf页数_Python分割指定页数的pdf文件方法
Python分割指定页数的pdf文件方法 如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止 ...
- linux下查看进程的线程数,linux查看进程的线程数
top -H -p $PID #查看对应进程的那个线程占用CPU过高 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行 ...
- python scrapy框架基如何实现多线程_Python实现在线程里运行scrapy的方法
本文实例讲述了Python实现在线程里运行scrapy的方法.分享给大家供大家参考.具体如下: 如果你希望在一个写好的程序里调用scrapy,就可以通过下面的代码,让scrapy运行在一个线程里. & ...
- 通过设置Weblogic设置线程数提高系统并发
使用Weblogic版本:Weblogic 11g(10.3.6) 设置Weblogic的线程数有两种方法, 第一种,通过启动参数设置: -Dweblogic.threadpool.MinPoolSi ...
- linux 查询系统CPU核数、线程数
1. 查看CPU型号 ~$ cat /proc/cpuinfo | grep name | sort | uniq model name : Intel(R) Core(TM) i7-6700HQ C ...
- Python SSH爆破以及Python3线程池控制线程数
源自一个朋友的要求,他的要求是只爆破一个ip,结果出来后就停止,如果是爆破多个,完全没必要停止,等他跑完就好 #!usr/bin/env python #!coding=utf-8__author__ ...
- python获取电脑几核几线程_python编程测试电脑开启最大线程数实例代码
本文实例代码主要实现python编程测试电脑开启最大线程数,具体实现代码如下. #!/usr/bin/env python #coding=gbk import threading import ti ...
最新文章
- php对接V免签支付教程_【全网首发】最新版影视小程序搭建教程完整版
- mysql 左连接_MySQL左连接与右连接
- oracle ^]字符,oracle数据中特殊字符处理
- 用通俗的语言解释贝叶斯公式
- 南京大学计算机科学与技术系陈东东,南京大学2016年硕士生学业奖学金评审结果计算机科学与技术系...
- 中级微观经济学:Chap 9 购买和销售
- mac抹掉磁盘重装系统未能与服务器取得联系_苹果笔记本怎么重装系统
- 【安全】eWebeditor编辑器上传webshell
- Android中使用SVG矢量图打造多边形图形框架
- Java 下载 Excel模板时,报修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击是
- 关于在使用ztree中同级排序的疑问
- PTA 7-2 USB接口的定义(接口、接口变量、接口数组)
- hostiko模板-WHMCS自适应模板-略站网
- 线性回归、lasso回归、岭回归以及弹性网络的系统解释
- X86-64指令解析
- android 设置背景ah,Ahjesus,
- 广州数据中心机房机柜安装施工
- STM32f103ZET6引脚通道(ADC和TIM)
- PGA内存空间的分配与回收
- 怎么把视频里的音乐提取成音频,怎么提取视频中的音频
热门文章
- 感知器(perceptron)模型分析及实现
- ArcGIS开发基础教程(一):API及服务器配置
- C2C平台退换货逆向寄件服务,快递鸟“上门取件“解决方案
- 阿雪的学习记录|刷视频记录
- mysql慢查询设置
- 自组织网络(Ad Hoc Network)——TOPIC 4 IP地址和互联网协议【RIP内容更新】
- 总忍不住想接话?原来是你的大脑在疯狂“脑补”下个词丨PNAS
- 大胆猜测:今年816全民顾家日埋了3个伏笔?
- 图像处理_Ostu算法(大律法、最大类间方差法)
- Python网络协议编程之HTTP协议详解