如何限制创建的Thread对象的数量?

2023-12-01

我想在下面的代码中限制数量class_f同时运行的对象。即限制同时工作的线程数量。我怎样才能做到这一点 ?

#!/usr/bin/env python

import random
import time
from threading import Thread

list_num = [1,2,3,4,5,6,7,8,9,10]

class class_f(Thread):

    def  __init__(self,x):
        Thread.__init__(self)
        self.x = x

    def run(self):

        time.sleep(random.randint(0,1))
        res = self.x * self.x
        print str(res)+"\n"


def main():
    for num in list_num:
        c=class_f(num)
        c.start()

if __name__ == "__main__":
    main()

我建议使用有界信号量。 你可以像这样实现它:

maxThreads = 10
semaphore = threading.BoundedSemaphore(maxThreads)

然后在你的__init__ call sempahore.acquire()在线程开始工作之前。当线程完成时调用sempahore.release()。获取减少信号量中存储的数字。如果您尝试获取值为零的信号量,它将等待,直到信号量再次释放。看一眼Python中的线程同步机制Fredrik Lundh 更深入地解释了如何使用信号量.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何限制创建的Thread对象的数量? 的相关文章

  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 表被指定两次,既作为“UPDATE”的目标,又作为 mysql 中数据的单独源

    我在 mysql 中有以下查询 我想检查是否分行编号 and year of finance输入来自分支主控等于分行编号 and year of manager然后更新状态manager表反对分行编号 in manager UPDATE m
  • Excel MATCH 字符限制

    我用下面的公式 INDEX Dict A A MATCH A2 Dict A A 0 1 但 MATCH 仅适用于 256 个字符以下的文本 有什么办法可以克服这个限制吗 为了适应部分匹配使用SEARCH像这样 INDEX Dict A A
  • grunt-contrib-sass:不兼容的字符编码:UTF-8 和 CP850

    当尝试使用 grunt 将我的 sass 文件转换为普通 css 文件时 我收到警告 Warning Encoding CompabilityError incompatible character encodings UTF 8 and
  • Numpy 按元素进行运算

    假设我有一个长度为 n 的列向量 y 并且有一个大小为 n m 的矩阵 X 我想检查 y 中的每个元素 i 该元素是否位于 X 中的相应行中 最有效的方法是什么 例如 y 1 2 3 4 T and X 1 2 3 3 4 5 4 3 2
  • Android中ListView缓存的实现方法

    我有一个 ListView 其中包含大量数据 第一次 我从 Web 服务加载所有数据 现在我想缓存该数据 这样 如果我再次打开该页面 我可以从缓存中获取数据 而不是再次查询 Web 服务 我怎么做 我假设您正在存储从以下位置检索的数据Web
  • 限制鼠标在指定窗口句柄上移动

    我正在寻找在 Windows 上模拟 Safari 的信息亭模式 OSX 无法与我的输入硬件配合使用 并且 Chrome 的 GPU 加速对于我正在使用的机器来说太慢 到目前为止 唯一可行的解 决方案是运行 Safari 并发送 F11 全
  • 如何使用 Google Drive API 检索最近的已删除文件列表

    我最近删除了 Google Drive 中的大量文件 并将它们移至垃圾箱 我想永久删除它们 但垃圾箱中的文件不能按删除日期排序 只能按修改日期排序 删除时不会更新 因此 我想利用 Google Drive API 来枚举垃圾并确定其被删除的
  • 相当于 with(来自 Pascal)到 C/C++

    相当于什么with从Pascal语言到C C 语言 A with语句是引用记录字段或对象的字段 属性和方法的简写 Example With Object do begin Width 200 Height 300 end 相当于 Objec
  • 为什么在Java的Object类中声明wait()和notify()?

    为什么是wait and notify 中声明的方法Object类 而不是Thread class 因为 您等待给定的对象 或者具体来说 它的监视器 来使用此功能 我认为您可能误解了这些方法的工作原理 它们不只是处于线程粒度级别 即not只
  • IndentationError:需要一个缩进块[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 有人可以告诉我在这个 Python 代码示例中我做错了什么吗 for i in range len Adapters print Adapters i 我正在尝试列出 打印数
  • Webdriver selenium,java.lang.NullPointerException,尝试查找 Webelement 时

    编写了完整的代码来从 Excel 获取数据并登录 Gmail 但在尝试这样做时 我的浏览器已打开 所需的页面也已打开 并且登录 ID 已从 Excel 中选取并存储在变量 sUsername 中 但无法将 xpath 定位为 element
  • R geom_point 和 ggmap

    我想在 R 中绘制一个 ggmap 例如澳大利亚的 ggmap 并有一层数据点 其标记对应于以下数据指定的大小 sitename lat lon sitenum Sydney 34 151 1 Melbourne 37 144 4 Adel
  • Mongodb 节省了一天时间 - 时区问题

    我以 MM DD YYYY 的角度格式发布日期 但是当它保存在 Mongodb 中时 它会少一天保存 ISO 格式 我正在使用 MEAN 堆栈进行开发 例如 来自角度 10 03 2016 mongodb ISODate 2016 10 0
  • 从 python 子进程运行 linux grep 命令

    我知道已经有关于如何在 python 中使用子进程来运行 linux 命令的帖子 但我只是无法获得正确的语法 请帮忙 这是我需要运行的命令 sbin ifconfig eth1 grep inet addr awk F print 2 aw
  • mysql 检查数字是否在逗号分隔列表中

    我有一个这样的表 UID int NUMBERS blob 1 1 13 15 20 2 3 10 15 20 3 3 15 我想测试 3 和 15 是否在名为 NUMBERS 的 blob 中 并且可以看到LIKE 不能使用 仅选择 ID
  • 合并2个没有重复键的数组

    我有两个如下所示的数组 想要将它们合并在一起 而不是将重复的键放入新数组中 array1 Array 0 gt Array a gt Array p gt Array a gt 1 a s gt Array p gt Array o gt
  • Type.GetType("namespace.a.b.ClassName") 返回 null

    这段代码 Type GetType namespace a b ClassName returns null 我的用途是 using namespace a b 该类型存在 它位于不同的类库中 我需要通过以字符串形式给出的名称来获取它 Ty
  • 如何快速检测哪个图像被点击

    我在 ViewController 上创建了 6 个 UIImageView 稍后我将向所有这些视图添加 TapGestureRecognizer 我想让它根据单击的图像 另一个 ViewController 将打开并显示某些信息 为此 我
  • Sql Server Ce 3.5 身份插入

    Sql Server CE 中的标识列出现问题 使用服务器资源管理器时 在VS2008中 执行以下脚本 SET IDENTITY INSERT testTable ON 插入 testTable id name 值 1 Something
  • 如何限制创建的Thread对象的数量?

    我想在下面的代码中限制数量class f同时运行的对象 即限制同时工作的线程数量 我怎样才能做到这一点 usr bin env python import random import time from threading import T