Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python线程监视器

python线程监视器
EN

Stack Overflow用户
提问于 2012-12-07 12:49:36
回答 1查看 2.4K关注 0票数 0

我正在写一个简单的应用程序,它从文件中读取(大约一百万行)行,将这些行复制到列表中,如果下一行与前一行不同,它将运行一个线程,以对该列表执行一些工作。线程作业基于tcp套接字,通过telnet lib发送和接收命令。

有时我的应用程序挂起,什么也不做。

所以如果你能追踪到我那就太好了。

对于这个文件,我创建了40个线程。伪代码看起来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
lock = threading.Lock()
no_of_jobs = 0

class DoJob(threading.Thread):
    def start(self, cond, work):
        self.work = work
        threading.Thread.start(self)
    def run(self)
        global lock
        global no_of_jobs
        lock.acquire()
        no_of_jobs += 1
        lock.release()

        # do some job, if error or if finished, decrement no_of_jobs under lock
        (...)
main:
#starting conditions:
with open(sys.argv[1]) as targetsfile:
    head = [targetsfile.next() for x in xrange(1)]
    s = head[0]

    prev_cond = s[0]
    work = []

for line in open(sys.argv[1], "r"):
    cond = line([0])
    if prev_cond != cond:
       while(no_of_jobs>= MAX_THREADS):
           time.sleep(1)

       DoJob(cond, work)
       prev_cond = cond
       work = None
       work = []
     work.append(line)

#last job:
       DoJob(cond, work)

while threading.activeCount() > 1:
    time.sleep(1)

向J致以最好的敬意

EN

回答 1

Stack Overflow用户

发布于 2012-12-07 13:01:29

我曾经成功地使用过如下代码(来自我编写的python 3程序):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import threading

def die():
    print('ran for too long. quitting.')
    for thread in threading.enumerate():
            if thread.isAlive():
                    try:
                            thread._stop()
                    except:
                            pass
    sys.exit(1)


if __name__ == '__main__':
    #bunch of app-specific code...

    # setup max runtime
    die = threading.Timer(2.0, die) #quit after 2 seconds
    die.daemon = True
    die.start()

    #after work is done
    die.cancel()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13763446

复制
相关文章
监视器
想了解 synchronized 是如何运行的?就要先搞清楚 synchronized 是如何实现? synchronized 同步锁是通过 JVM 内置的 Monitor 监视器实现的,而监视器又是依赖操作系统的互斥锁 Mutex 实现的,那接下来我们先来了解一下监视器。
磊哥
2022/05/10
8600
监视器
Python实现本机网络流量监视器
本文要点在于Python扩展库psutil提供的方法net_io_counters()可以查看本机网络收发包和流量情况,稍加封装就可以实现流量监视器。 import time import psutil def main(): #初始流量情况 traffic_io = psutil.net_io_counters()[:2] while True: #0.5秒之后再次获取流量情况 time.sleep(0.5) traffic_ioNew = psutil.ne
Python小屋屋主
2018/04/16
1.1K0
java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
Lock接口提供了方法Condition newCondition();用于获取对应锁的条件,可以在这个条件对象上调用监视器方法
noteless
2019/03/15
5720
java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
Monitor(管程/监视器)详解
  Monitor,直译为“监视器”,而操作系统领域一般翻译为“管程”。管程是指管理共享变量以及对共享变量操作的过程,让它们支持并发。在Java 1.5之前,Java语言提供的唯一并发语言就是管程,Java 1.5之后提供的SDK并发包也是以管程为基础的。除了Java之外,C/C++、C#等高级语言也都是支持管程的。synchronized关键字和wait()、notify()、notifyAll()这三个方法是Java中实现管程技术的组成部分。
忧愁的chafry
2022/10/30
1.7K0
Monitor(管程/监视器)详解
Python 线程 - 多线程
线程 python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用 1. 使用threading模块 单线程执行 [root@server01 many_task]# vim test2.py #coding=utf-8 from time import sleep def smoke(): for i in range(5): print("我抽 %d 根烟"%i) sleep
Devops海洋的渔夫
2019/05/31
9430
chrome性能监视器
从而看到我们的CPU使用情况、JS堆大小、DOM节点个数、JS事件监听器等,能够用于性能调优时参考
阿超
2022/11/28
9320
chrome性能监视器
java中线程同步Synchronized,监视器monitor和锁lock的关系是什么
既然有关监视器monitor的概念比较难,大家怎么解释的都有。首先我给出一下java的官方文档,也是最权威的解释:
马克java社区
2021/04/23
7860
java中线程同步Synchronized,监视器monitor和锁lock的关系是什么
Python线程-守护线程
在 Python 中,线程可以分为两种类型:主线程和守护线程。主线程是程序的主要执行线程,它会一直运行直到程序结束。而守护线程则是一种支持线程,它的生命周期与主线程或其他非守护线程相关联。当所有非守护线程结束后,守护线程也会随之结束。
玖叁叁
2023/04/20
9100
一款基于 Python 语言的 Linux 资源监视器!
还记得前不久给大家推荐的《一款霸榜 GitHub 的开源 Linux 资源监视器!—— bashtop》吗?它是一个用 Bash 编写的 Linux 资源监视器。
杰哥的IT之旅
2020/08/11
7720
一款基于 Python 语言的 Linux 资源监视器!
Python 线程
开启一个字处理软件进程,该进程肯定需要办不止一件事情,比如监听键盘输入,处理文字,定时自动将文字保存到硬盘,
py3study
2020/01/19
6380
Python 线程
Python 线程
线程 Python学累了,想学Java html js vue Tailwindcss 小程序 c4d ae pr 了. 什么是线程 进程吸收资源 传递给线程执行业务逻辑 线程与进程的关系 吃饭获得能量和营养(进程), 之后大脑执行逻辑(线程) 进程提供线程执行程序的前置要求,线程在重组的资源配备下,去执行程序 多线程 开启一个浏览器后,从浏览器(主进程)中创建出多个线程来开启多个页面 多线程的执行方式 一、什么是线程 线程(Thread)是操作系统最小的执行单元,进程至少由一个线程组成。如何调度
Zkeq
2022/05/18
3940
Python 线程
python多线程与线程
考虑一个场景:浏览器,网易云音乐以及notepad++ 三个软件只能顺序执行是怎样一种场景呢?另外,假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。你是不是已经想到在程序A读取数据的过程中,让程序B去执行,当程序A读取完数据之后,让程序B暂停。聪明,这当然没问题,但这里有一个关键词:切换。
超蛋lhy
2018/08/31
1K0
python多线程与线程
Python线程-线程的互斥
在多线程编程中,线程之间的数据访问往往需要进行互斥,以避免并发访问共享资源时发生竞态条件(Race Condition)和数据不一致等问题。Python 提供了 Lock 类来实现线程之间的互斥,本文将详细介绍如何使用 Lock 实现线程互斥。
玖叁叁
2023/04/20
6490
Python多线程通信_python socket多线程
作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
全栈程序员站长
2022/09/27
1.2K0
macos上好用串口监视器
Mac终端Screen命令使用指南 ctrl+x d https://www.cnblogs.com/jojo276/p/6724509.html
iot-me.club
2022/02/11
8900
macos上好用串口监视器
Redis的监视器和使用
Redis监视器是Redis服务器提供的一个内置工具,用于查看和分析Redis实例上发生的各种事件和操作。
一凡sir
2023/10/08
4510
Redis的监视器和使用
web service中配置tcp/ip监视器
配置tcp/ip监视器(请求转发+请求信息记录) 监听port : 8989(wsdl文件中的address属性一致) 监听主机 :ip 转发的port : 8080(server端一致) 将webservice的wsdl文件保存到client应用中: helloWS.wsdl 修改helloWS.wsdl文件中的uri : port adresss属性 8080–>8989 在client应用的src下执行命令: wsimport -keep 本地wsdl文件—》生成client端代码 借助生
汤高
2018/01/11
8310
web service中配置tcp/ip监视器
【python】Python 线程调用
简介:   Python 线程可以通过主线程,调用线程来执行其他命令,   为Python提供更方便的使用。   并发线程测试# 命令调用方式 import threading,time # 定义每个线程要运行的函数 def run(n): print("task",n) time.sleep(1) # 生成一个线程实例target=目标,args=参数 t1 = threading.Thread(target=run,args=("t1",)) t2 = threading.Threa
python亦希
2022/01/05
2.5K0
Python线程-线程的同步(三)
信号量是一种允许多个线程同时访问共享资源的同步机制。在 Python 中,可以使用 threading.Semaphore 类来创建一个信号量。信号量有两个操作:acquire() 和 release()。acquire() 方法用于获取信号量,如果信号量的计数器为零,则线程将被阻塞,直到有一个线程释放信号量;release() 方法用于释放信号量,使计数器加一。
玖叁叁
2023/04/20
4850
Python线程-线程的同步(一)
在多线程编程中,线程同步是非常重要的话题,它用于协调多个线程对共享资源的访问,避免出现竞争条件(Race Condition)、死锁(Deadlock)等问题,确保多个线程之间的数据一致性。
玖叁叁
2023/04/20
4770

相似问题

分段故障线程(监视器)

10

如何使用线程监视器

20

多线程Python Tkinter串行监视器中的按钮问题

11

了解Java线程、监视器等……

32

保存监视器的Java线程

35
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文