首页 > 编程语言 >python多线程:控制线程数量

python多线程:控制线程数量

时间:2024-11-08 09:46:17浏览次数:5  
标签:Queue python signal queue sleep 控制线 import 多线程 def

python多线程:控制线程数量   https://www.cnblogs.com/hanmk/p/12990017.html
使用线程池   https://zhuanlan.zhihu.com/p/627853937

1.自定义线程池

 1 import threading
 2 import Queue
 3 import time
 4   
 5 queue = Queue.Queue()
 6   
 7   
 8 def put_data_in_queue():
 9   for i in xrange(10):
10     queue.put(i)
11   
12   
13 class MyThread(threading.Thread):
14   def run(self):
15     while not queue.empty():
16       sleep_times = queue.get()
17       time.sleep(sleep_times)
18       queue.task_done()
19   
20   
21 def main_function():
22   threads_num = 6
23   while True:
24     put_data_in_queue()
25     for i in xrange(threads_num):
26       myThread = MyThread()
27       myThread.setDaemon(True)
28       myThread.start()
29     queue.join()
30     time.sleep(60)

2.多线程与signal信号的监控结合

import threading
import Queue
import time
import signal
  
queue = Queue.Queue()
stop = False
  
  
def receive_signal(signum, stack):
  signal.signal(signal.SIGTERM, original_sigterm)
  global stop
  stop = True
  
  
def put_data_in_queue():
  for i in xrange(10):
    queue.put(i)
  
  
class MyThread(threading.Thread):
  def run(self):
    while not queue.empty():
      sleep_times = queue.get()
      time.sleep(sleep_times)
      queue.task_done()
  
  
def main_function():
  threads_num = 6
  while not stop:
    put_data_in_queue()
    for i in xrange(threads_num):
      myThread = MyThread()
      myThread.setDaemon(True)
      myThread.start()
    queue.join()
    time.sleep(60)
  
  
if __name__ == "__main__":
  original_sigterm = signal.getsignal(signal.SIGTERM)
  signal.signal(signal.SIGTERM, receive_signal)
  main_function()

 



标签:Queue,python,signal,queue,sleep,控制线,import,多线程,def
From: https://www.cnblogs.com/jchblog/p/18534526

相关文章

  • python 内置函数
    1.abs(x): 返回一个数的绝对值。x=-10 print(abs(x)) #输出:10  2.all(iterable):如果可迭代对象中所有元素都为真,则返回True;否则返回False。iterable=[True,True,False] print(all(iterable)) #输出:False  13.any(iterable):如果可迭代对象中任何......
  • 【YOLOv11[基础]】实例分割Seg | 导出ONNX模型 | ONN模型推理以及检测结果可视化 | py
    本文将导出YOLO-Seg.pt模型对应的ONNX模型,并且使用ONNX模型推理以及结果的可视化。话不多说,先看看效果图吧!!!目录一导出ONNX模型二推理及检测结果可视化1代码2效果图......
  • 【DL】CAM | 与嵌入的概念相比,图像中有什么相似或不同之处?| 热力图可视化 | python |
    本文将采用像素属性方法嵌入模型输出(Adaptingpixelattributionmethodsforembeddingoutputsfrommodels)的实践。话不多说,先看看效果吧!!!目录1安装pytorch-gradcam2实践① 代码② 效果图“与嵌入的概念相比,图像中有什么相似或不同之处?”为了实现这一点,将创建......
  • Python pickle解压时可能存在安全风险
    Pythonpickle解压时可能存在安全风险https://www.codebonobo.tech/post/15#Python%20pickle%E8%A7%A3%E5%8E%8B%E6%97%B6%E5%8F%AF%E8%83%BD%E5%AD%98%E5%9C%A8%E5%AE%89%E5%85%A8%E9%A3%8E%E9%99%A9  如果解压对像中有重构的reduce操作,pickle.loads时会执行reduce方......
  • Python中配置环境变量的几种姿势
    大家好,欢迎来到Crossin的编程教室!在运行一个项目的时候,我们经常会遇到设置不同环境的需求,如设置是开发环境、测试环境还是生产环境,或者在某些设置里面可能还需要设置一些变量开关,如设置调试开关、日志开关、功能开关等等。这些变量其实就是在项目运行时我们给项目设置......
  • 采用 Python 机器学习预测足球比赛结果
    足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻。比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题。甚至连原来不怎么看足球的人,也是暗中努力恶补了很多足球相关知识,想通过赛事竞猜先赚一个小目标。今天我们将介绍......
  • python验证码滑块图像识别
    文章目录1、案例图片1、需求说明2、代码实现总结1、案例图片1、需求说明python3.10,写一个滑块验证码的自动化程序。需要一个opencv的函数,能准确的计算,在这同一张图片上,滑块形状和缺口形状的坐标位置及两个形状之间在X轴上的距离。请注意,没有单独的滑块图片,而是......
  • 使用Python将EPUB电子书网文主角换成自己
    文章目录使用Python将EPUB电子书网文主角换成自己EPUB电子书准备工作操作步骤Python实现代码代码解析使用Python将EPUB电子书网文主角换成自己最近看网文小说,想到一个有意思的东西,为什么不把网文主角换成自己的名字,这样看起来不更有沉浸感,更加有代入感。于是便从e......
  • python基础——04数据类型(元组,集合,字典)
    一、元组(tuple)1.1什么是元组元组和列表相似,但元组的元素放在()里面。t=(1,2,3,4,5)print(type(t))#<class'tuple'>t1=('hello')#<class'str'>这不是元组t2=('hello',)#<class'tuple'>print(type(t1),type(t2)......
  • python小练习——条件语句if
    if语句是Python中进行条件判断的基础工具,通过它可以轻松实现逻辑选择和流程控制。掌握好if语句的使用方法,对编写高效、灵活的程序至关重要。今天我们通过七个简单的题目来熟悉一下Python中的if条件语句。1、从键盘输入年龄,判断是否大于等于18岁,如果满足就输出“已成......