python 线程thread.start()时,卡住,无法退出 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 33.33%
Bbs1
本版专家分:0
Bbs1
本版专家分:50
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:130
Bbs3
本版专家分:910
更加强健的线程模型,解决线程卡死,退出异常情况
<em>线程</em>模型 1 package net.sz; 2 3 import java.util.Random; 4 import java.util.concurrent.ConcurrentLinkedQueue; 5 import org.apache.log4j.Logger; 6 7 /** 8 * 9 * 10 * author 失足程序员
关于Thread的start和run方法的执行方式
今天突然想到,在主<em>线程</em>中启动一个子<em>线程</em>,在子<em>线程</em>执行完毕后,是否可以自动销毁的疑惑,带着问题,开始考虑编码,在编码过程中分别使用了Runnable和Thead两种不同的方式,下面先看第一中Runnable方式。 Runnable方式 class RunnableTest implements Runnable { @Override public void run(...
QEventLoop会卡住的解决方法
问题是这样的:在一个<em>线程</em>中有下面一段代码QEventLoop loop; QObject::connect(this, SIGNAL(playStopped()), &loop, SLOT(quit())); loop.exec();在主界面的<em>线程</em>中,HSSettings是一个QDialog类HSSettings* settings = new HSettings(this); settings->
ctrl+c退出python线程程序
多任务并行处理多数需要用到多<em>线程</em>,第一次用<em>python</em>写一个任务,需要同时监控两个状态,就使用了下多<em>线程</em>,但测试时候ctrl+c居然退不出,我以为是bug,结果看了下确实是这样的。如果一个<em>python</em>程序用了多<em>线程</em>,当子<em>线程</em>没有结束时,用ctrl+c是关闭不了主<em>线程</em>的,这时候就只能用kill命令杀掉,这样会很麻烦。 像我这样新上手的肯定需要多测试,怎么能忍每次去kill 所以找了别人尝试的方法 #...
Python中Thread类的start()和run()方法的区别
这两个方法都能开始<em>线程</em>活动,但是用法不同,其区别与Java Thread类中start()和run()的区别类似。 先来看官方文档的说明:
pyqt5窗体关闭后子线程不同时退出问题的解决
用pyqt5设计了一个主窗体,在窗体运行时需要把一个无限循环放在一个<em>线程</em>去工作。运行后,发现通过鼠标按主窗体的关闭按键关闭主创体后,<em>线程</em>不会自动终止,依然在运行。尽管对我的使用场景来说,这不是问题,因为立马就关机了。但在调试阶段就恨繁,因为后台<em>线程</em>很占资源。怎么能让主窗体关闭是子<em>线程</em>也<em>退出</em>呢?百度了许久,很多方法都不行。主要试过的有:1、设置:self.thread.Daemon=True2、在子...
python线程join方法导致不能接收信号
今天写一个小工具,开启多个<em>线程</em>,在子<em>线程</em>里循环执行任务,发现不能<em>退出</em>程序,然后折腾了半天,还是<em>退出</em>不了,最后发现,原来是个bug
某Python进程出现线程卡住情况的排查记录
现象:需要排查的进程同时运行多个<em>线程</em>,其中一个<em>线程</em>的日志停留在数日前,而其他<em>线程</em>可以正常运行,日志正常打印排查:观察<em>线程</em>信息: 可以使用top -H -p {进程id}命令获得该进程<em>线程</em>信息。 排查当天15:09<em>线程</em>信息: 出问题服务器: 正常服务器(为了方便对比): 16:36<em>线程</em>信息: 出问题服务器: 正常服务器: 经过一番努力观察,发现出问题服务器3914这个
为什么使用了多线程界面假死?
为什么使用了多<em>线程</em>界面假死? 这里贴出两个项目(已经测试)。 先贴不正确的多<em>线程</em> 设计如图: 引入命名空间: using System.Threading; 完整代码: namespace ThreadTest1 { public partial class Form1 : Form { public
线程被IO卡住的原因之一
在内存trace中经常遇到<em>线程</em>uninterruptable sleep,而打出来的trace可以看到是如下: wait_on_page_bit_killable+0xb0/0xcc __lock_page_or_retry+0xb8/0xf4 filemap_fault+0x4cc/0x630 ext4_filemap_fault+0x34/0x48 __do_fault+0x88/0x110...
tcp + 阻塞 + 多線程 => 如何停止Recv()
http://topic.csdn.net/t/20051117/01/4398756.htmlTCP的阻塞模式,服務器程序 主線程 => 界面 線程2 => Accept() 線程3 => Recv() 線程2在Accept了一個Client的連接後返回一個TCP Socket,我把它放到線程3來接收資料。 問題是在Recv()在沒有資料到來的時候會一直等待,我想在收到界面命令的時候令到它停止等待。 請各位給個正確的思路!=========================设置socket超时间隔,比如10
python线程关闭后子线程不关闭问题
<em>python</em>父<em>线程</em>关闭后子<em>线程</em>不关闭的问题
Python中多线程的阻塞问题
在使用Queue模块+多<em>线程</em>模拟生产者+消费者问题时,遇到了一个小问题,现在记录下来。供可能会遇到类似问题的初学者们参考。 该问题的完整参考代码如下。主要实现了以下的功能:在一个<em>线程</em>中,开启生产者模式,生成出来的object会put进一个Queue对象queue中。除此以外,在n个<em>线程</em>中(本代码中n为5,nfuncs = 5),开启消费者模式,每一个消费者<em>线程</em>会在一个while循环中不断地从qu
C# winform 防止界面卡住 线程 委托
C# winform 防止界面<em>卡住</em> <em>线程</em> 委托:单击按钮时创建<em>线程</em>,<em>线程</em>调用委托,执行委托的方法,实现更新窗体界面时不<em>卡住</em>。
pyqt通过信号槽机制来退出线程
刚刚解决了pyqt<em>线程</em><em>退出</em>问题,特来此记录下解决的想法。以下用一个简单例子来表现如何用signal/slot信号槽来<em>退出</em><em>线程</em>。 若有一个按钮,点击开始<em>线程</em>,再次点击<em>退出</em><em>线程</em>,<em>线程</em>的工作为打印a(1-20)然后b(1-20),<em>线程</em>代码如下: class UpdateThread(QThread): def __init__(self, parent=None): supe
Windows下解决TerminateThread终止线程导致死锁问题
前面提到,调用TerminateThread终止<em>线程</em>曾导致栈变量回收出现问题,进而导致死锁。为了解决这个问题,只能等待各个子<em>线程</em>主动<em>退出</em>,由此导致资源访问的互斥问题。 为了解决这个问题,我建立了一个参考模型:食堂进餐。 由于食堂老板(应用程序主<em>线程</em>)很忙,所以安排了一个管理员(管理<em>线程</em>)来管理食堂。食堂每天中午12点到12点半开放。 起初,来食堂吃饭的人不多,而且附近也没有其他食
django命令卡死问题解决
问题描述:          1、可能由于网络原因,导致django命令在多次定时器运行后,会出现假死,启动的那一刻就卡死,不执行任何代码          2、可能由于连接数据库异常导致假死          3、其他未知原因,如果有遇到的,或者知道原因的,希望得到指教 解决办法:        办法1、                 1、在命令启动的时候把命令对应
Python 中用 Ctrl+C 终止多线程程序的问题解决
Python 中用 Ctrl+C 终止多<em>线程</em>程序的问题解决      花了一天时间用<em>python</em>为服务写了个压力测试。很简单,多<em>线程</em>向服务器发请求。但写完之后发现如果中途想停下来,按Ctrl+C达不到效果,自然想到要用信号处理函数捕捉信号,使<em>线程</em>都停下来,问题解决的方法请往下看: #!/bin/env <em>python</em> # -*- coding: utf-8 -*- #filena
Groovy线程基础
Java 的一个很值得称道的特性是在语言级支持多<em>线程</em>。定义了 Runnable 接口,并在根类 Object 中提供了 wait/notify 方法,还有 synchronized 关键字的支持。我们常说实现多<em>线程</em>的方式有两种:继承 Thread 和实现 Runnable,实质上工作者<em>线程</em>执行的都是 Runnable 接口中定义的 run() 方法,Thread 本身实现了 Runnable 接口...
C# 单纯暂停线程(Thread.Sleep方法)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace UsingSleep { //Thread是实例类,但包含实例成员和静态成员。调用静态成...
Python线程退出控制
ctypes模块控制<em>线程</em><em>退出</em> Python中threading模块并没有设计<em>线程</em><em>退出</em>的机制,原因是不正常的<em>线程</em><em>退出</em>可能会引发意想不到的后果。 例如: <em>线程</em>正在持有一个必须正确释放的关键资源,锁。 <em>线程</em>创建的子<em>线程</em>,同时也将被杀掉。 管理自己的<em>线程</em>,最好的处理方式是拥有一个请求<em>退出</em>标志,这样每个<em>线程</em>依据一定的时间间隔检查规则,看是不是需要<em>退出</em>。 例如下面的代码: import threading...
python中强制关闭线程方法
import threading import time import inspect import ctypes def _async_raise(tid, exctype): """raises the exception, performs cleanup if needed""" tid = ctypes.c_long(tid) if not inspect.iscl
QT之quit()、exit()退出无效
今天处理一个<em>退出</em>程序问题,查资料后可用quit()、exit()<em>退出</em>程序 问题:登录界面(模态的dialog),主界面。登陆成功则进入主界面,不成功会有相关提示,<em>退出</em>则关闭程序。 在主程序的mainwindow构造函数中调用login登录界面,并做相关处理,结果无论如何也<em>退出</em>不了程序。 漫漫分析路: 从函数的介绍中可以知道:如果事件循环没有运行,则此函数不执行任何操作!!! 也就是说...
Python设置函数调用超时,进程卡住
背景:        最近写的Python代码不知为何,总是执行到一半<em>卡住</em>不动,为了使程序能够继续运行,设置了函数调用超时机制。 代码: import time import signal def test(i):     time.sleep(i%4)     print "%d within time"%(i)     return i if
C#中线程所处的状态
判断<em>线程</em>是否运行的方法:thread.ThreadState == ThreadState.Running有时候会出现多个命名空间中同时含有ThreadState建议使用下面方法;printThread.ThreadState == System.Threading.ThreadState.Running<em>线程</em>的状态列表
Groovy 里常用的异步操作方式
Groovy中三种异步运行代码的方式A. 传统的<em>线程</em>方式 Threaddef mytask={println "3.hello"} println "1.begin" new Thread( { mytask(); }).start() println "2.end"将会输出:1.begin2.end3.hello B. 使用事件发送订阅模型 Events impo
Thread使用start和run方法启动线程有什么区别?
写在前头:近期或多或少的去了一些比较优秀的企业面试,现在的企业要求比较高,当然也可能和你面试的岗位有关,一定的工作年限需要有对应的知识的深度和宽度,并且会发现一个特性,就是面试官非常注重你的基础知识的理解和掌握能力,比如说去面试Android开发,但是可能会问你很多的java知识,包括Http和Https,还有网络通信,H5数据交互等等知识点,那么我们应该如何应对这些呢,答案只有一个,多看多...
qt线程退出的一些研究
感觉qt的<em>线程</em>有点坑,好吧,还是自己不太熟悉,今天抽空研究了一下,记录下来。 我经常使用的是两种<em>线程</em>: 1.继承QThread, 重写run()函数。 2.使用movethread()函数。 对于第一种,大家应该都比较熟悉,我的做法是在run函数中,通过设置bool值来控制<em>线程</em>的循环当run()函数<em>退出</em>的时候,会发出finished()信号,通过看qt文档,建议是当信号发出的时候,连接到d
java向线程中传递参数
1、通过构造函数传递参数    public class CreateIndexThread extends Thread { public boolean flag = true; private String d; private String e; private String f; public static void main(String[] args) {
调用Shell脚本无法正常退出的问题处理
做一些服务器部署的时候出现的一系列问题 使用sshpass执行脚本时,<em>无法</em><em>退出</em> 使用php system,exec,之类的的shell调用函数<em>无法</em><em>退出</em>的问题 当执行的脚本没有后台任务时,不会有任何问题 一旦出现无限循环的后台进程则会<em>卡住</em>不动 比如test1.sh的内容如下 #!/bin/bash while true do echo "it's in loop" sleep 1
对Thread的start()和run()的一些认识
通常我们需要在新<em>线程</em>里执行操作时,可以这么写: 写法一: 在需要的地方调用new MyThread().start(),并重写匿名Thread类的run方法,如下; new Thread() { @Override public void run() { System.out.println(&amp;amp;amp;quot;Thread run&amp;amp;amp;quot;); } }.start(); 输出:Thre...
线程、子线程与进程的退出问题
主<em>线程</em>、子<em>线程</em>调用exit, pthread_exit,互相产生的影响。 1、在主<em>线程</em>中,在main函数中return了或是调用了exit函数,则主<em>线程</em><em>退出</em>,且整个进程也会终止, 此时进程中的所有<em>线程</em>也将终止。因此要避免main函数过早结束。 2、在主<em>线程</em>中调用pthread_exit,   则仅仅是主<em>线程</em>结束,进程不会结束,进程内的其他<em>线程</em>也不会结束, 知道所有<em>线程</em>结束,
python线程卡死问题解决
1. top命令和日志方式判定卡死的位置<em>python</em>代码忽然卡死,日志不输出,通过如下方式可以确定<em>线程</em>确实已经死掉了:# top 命令top命令可以看到机器上所有<em>线程</em>的执行情况,%CPU和%MEM可以看出<em>线程</em>消耗的资源情况由于机器上<em>线程</em>数量太多,可能要查看的<em>线程</em>的信息在top命令当前屏幕上显示不出来可以通过如下方式查看在top命令下输入:u 接下来会提示输入用户名,就可以查看该用户所执行的所有线...
C++进阶—> CloseHandle详解及CloseHandle后线程未停
函数说明 BOOL CloseHandle(HANDLE hObject); 参数 hObject :代表一个已打开对象handle。 返回值 TRUE:执行成功; FALSE:执行失败,可以调用GetLastError()获知失败原因。 函数用于关闭一个内核对象。 CloseHandle到底做了什么? 当调用CloseHandle成功后,相关的内核对象的引用
【Python笔记】Python多线程进程如何正确响应Ctrl-C以实现优雅退出
相信用C/C++写过服务的同学对通过响应Ctrl-C(信号量SIG_TERM)实现多<em>线程</em>C进程的优雅<em>退出</em>都不会陌生,典型的实现伪码如下:#include int main(int argc, char * argv[]) { // 1. do some init work ... init() ... // 2. install signal handl
线程Thread的t.start()实现的是异步的线程,t.run()方法实现的是同步线程
package interview; public class TestRun_Start extends Thread { public static void main(String[] args) { TestRun_Start ta = new TestRun_Start(); Thread t = ta.new TestThread2(&quot;新建<em>线程</em>1&quot;); { ...
退出AndroidStudio时卡死
最近经常遇到<em>退出</em>AndroidStudio的时候卡死,本身电脑配置不算低,而且打开时候不会卡,正常使用包括Build的时候也不会卡,就只有<em>退出</em>的时候会卡死。百度、google都没找到我这样的情况。。。 那只能自己解决了,先是尝试将gradle部署等放在本地,发现无效。。。修改VM内存大小,使用时速度是会变快一点,但还是没办法解决<em>退出</em>时卡死的问题。没办法,只好看日志了,可以通过Help->Show
解决socket关闭后read、recvfrom 等函数依旧无法退出阻塞
最近项目遇到一个问题,程序<em>退出</em>的时候资源没有正常释放。经过调试发现,原来是网络<em>线程</em>一直阻塞,导致一些必要的资源没有被释放,写了几个简单的测试程序调试了一下才明白,原来在Linux下直接close socket的文件描述符,并不会使程序中调用的一些阻塞式的socket函数(比如 read、recvfrom 等)<em>退出</em>阻塞,从而导致<em>无法</em>正常释放资源。简化示例如下。    下面是一个简化的UDP服务程序,...
python线程技术 python-线程的暂停, 恢复, 退出
由于<em>线程</em>是操作系统直接支持的执行单元,因此,高级语言通常都内置多<em>线程</em>的支持,Python也不例外,并且,Python的<em>线程</em>是真正的Posix Thread,而不是模拟出来的<em>线程</em>。Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。启动一个线...
C# 进程退出时 关闭线程
this.Close();   只是关闭当前窗口,若不是主窗体的话,是<em>无法</em><em>退出</em>程序的,另外若有托管<em>线程</em>(非主<em>线程</em>),也<em>无法</em>干净地<em>退出</em>; Application.Exit();  强制所有消息中止,<em>退出</em>所有的窗体,但是若有托管<em>线程</em>(非主<em>线程</em>),也<em>无法</em>干净地<em>退出</em>; Application.ExitThread(); 强制中止调用<em>线程</em>上的所有消息,同样面临其它<em>线程</em><em>无法</em>正确<em>退出</em>的问题; System...
线程:创建Thread为什么要调用start启动,而不能直接调用run方法
最近在学习Android Service时遇到这样多<em>线程</em>问题。     start()方法启动<em>线程</em>后,整个<em>线程</em>处于就绪状态,等待虚拟机调度, 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为<em>线程</em>体,它包含了要执行的这个<em>线程</em>的内容, Run方法运行结束, 此<em>线程</em>终止。期间虚拟机是分时间片轮番调用各个<em>线程</em>体的。    run()方法启动是当作普通方
C#多线程(二) -- ThreadStart
ThreadStart 方式实现多<em>线程</em>里先以一个例子体现一下多<em>线程</em>带来的好处,首先在Message类中建立一个方法ShowMessage(),里面显示了当前运行<em>线程</em>的Id,并使用Thread.Sleep(int ) 方法模拟部分工作。在main()中通过ThreadStart委托绑定Message对象的ShowMessage() 方法,然后通过Thread.Start() 执行异步方法namespa
关于python tkinter 多线程依然无响应问题
今天解决了一个GUI程序的多<em>线程</em>问题。 因为GUI程序在执行高IO操作的时候容易出现假死和无响应的状态,所以需要用到多<em>线程</em>。 但我的程序开了<em>线程</em>之后依然是无响应状态。几次尝试,终于找到问题所在。 1.首先,我的程序中有一个按钮button,点击之后运行函数self.starting self.my_button = tk.Button(root, text=&quot;确定&quot;,command= s...
关于socket的Accept阻塞模式的退出方法分析
众所周知,socket的Accept会当前<em>线程</em>。如果子程序,或者类在被回收时,没有正确的中止socket,则会引发一些异常。 我说一下常用的一些方法: 1.强行中断<em>线程</em>。     这种方法我觉得是最差的,因为强行中断正在执行的<em>线程</em>,可能会引发一些意想不到的结果,这是最差的方法。 2.在Socket上调用Pending()方法。     这种做法的原理就是:        a.看Sock
python线程的启动与阻塞
import threading t1=threading.Thread(target=func,args=iterable) t2=threading.Thread(target=func,args=iterable) 创建一个新的进程很简单,func为想要进程执行的函数名,arg即为iterable 如func的参数为整数,传递参数的时候不能写成t1=threading.Thread(targ
Java 线程阻塞、中断及优雅退出
<em>线程</em>阻塞一个<em>线程</em>进入阻塞状态的原因可能如下(已排除Deprecated方法):sleep()sleep()使当前<em>线程</em>进入停滞状态(阻塞当前<em>线程</em>),让出CUP的使用、目的是不让当前<em>线程</em>独自霸占该进程所获的CPU资源,以留一定时间给其他<em>线程</em>执行的机会;当在一个Synchronized块中调用Sleep()方法是,<em>线程</em>虽然休眠了,但是对象锁并没有被释放,其他<em>线程</em><em>无法</em>访问这个对象(即使睡着也持有对象锁)。w
Python线程---经过了测试,但运行结束后,不退出解释器
# coding=utf-8 # <em>线程</em> import time import thread import urllib2 def get_html(url): html = urllib2.urlopen(url).read() return html # 保存网页 def save_html(data,filename): f = file(filename,'wb') f.writ
python中多线程如何用Ctrl+C终止
在编写<em>python</em>多<em>线程</em>程序时,发现用Ctrl+C<em>无法</em>终止,就算用Ctrl+Z强制当前进程转为后台并使之停止,而实际上并未停止,用ps命令一查还在运行,于是上网上找资料,动手实践,记录分享一下解决办法。 在你的代码中增加如下类 class Watcher(): def __init__(self): self.child = os.fork() if
wxpython 无法退出
http://blog.csdn.net/xugangjava/article/details/8294716 ShowModal的原理 在主event loop中插入一个循环 来拦截 主窗口事件,当模态对话框<em>退出</em>时,取消这个循环,主窗口继续响应时间。 现在程序中开启了一个模态对话框,然后后台一个Timer要求<em>退出</em>程序,或者点击右下角<em>退出</em>程序 点击右下角<em>退出</em>,或者后台t
recv()退出线程
今天遇到recv()过程中,<em>退出</em>程序问题 在recv()在等待数据时,由于对方断开,造成recv()返回SIGPIPE,造成<em>退出</em>进程。 send()也会遇到相同问题,当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。根据信号的
Python 的多线程没有提供停止的方法,解决办法
帮忙测测我的博客,别太夸张,谢谢http://123.207.61.85:6789/ def stop_smon(): # 文件存在则停止<em>线程</em> print "停止检测中" # base_dir = os.path.join(os.path.dirname(__file__)) # base_dir = os.path.dirname(os.path.rea...
以事件通知线程结束,并等待线程安全退出
有关windows下的<em>线程</em>以及一部通信机制的一些
关于使用线程池造成tomcat进程无法正常退出的一点思考
最近在项目中使用了多<em>线程</em>生产者消费者模型来模拟消息队列处理问题,但是发现在要求<em>线程</em><em>退出</em>时,由于没能处理好<em>退出</em><em>线程</em>的操作造成了Tomcat进程<em>无法</em>停止的问题。经过一番折腾后想总结一下这方面的经验。 <em>线程</em>中断的方式常用的有两种,一种是使用标记位,在代码执行中通过对标记位的判断来决定是否应该<em>退出</em><em>线程</em>的执行;另一种是使用Thread类的interrupt方法,来终止<em>线程</em>。 因此,刚开始时,我便采用第二
Thread.Start()与ThreadPool.QueueUserWorkItem实现多线程的两种方式的对比
多<em>线程</em>情况下实现数据处理的两种操作的比较。
spyder死循环处理方法
结束死循环快捷键:Ctrl+C
线程关闭】主线程和子线程的关闭
今天写<em>线程</em>,再网页上找了些关闭<em>线程</em>的栗子,给大家整理一下~~~      多<em>线程</em>程序的开发中,启动了多个<em>线程</em>的程序在关闭的时候却出现了问题,如果程序<em>退出</em>的时候不关闭<em>线程</em>,那么<em>线程</em>就会一直的存在,但是大多启动的<em>线程</em>都是局部变量,不能一一的关闭,如果调用Thread.CurrentThread.Abort()方法关闭主<em>线程</em>的话,就会出现ThreadAbortException 异常,因此这样不行。
Python多线程线程创建和终止
<em>python</em>主要是通过thread和threading这两个模块来实现多<em>线程</em>支持。<em>python</em>的thread模块是比较底层的模块,<em>python</em>的threading模块是对thread做了一些封装,可以更加方便的被使用。Python threading模块不同于其他语言之处在于它没有提供<em>线程</em>的终止方法,本文分析了Python多<em>线程</em>终止控制的方法。
Python强制关闭线程的一种办法(可行已用于项目)
由于经常被Python非Daemon<em>线程</em>阻塞,导致程序<em>无法</em>结束。所以到处找办法解决,但是经常没有找到点上。导致无功而返。 今天突发奇想来搜了一下相关的解决方案,竟然被我找到了。 首先是百度了一下(懒得开VPN) 然后找到了一个网友分享的解决方案: http://www.cnblogs.com/rainduck/archive/2013/03/29/2989810.html 但是
java中如何使正在运行中的线程退出
终止<em>线程</em>的三种方法      有三种方法可以使终止<em>线程</em>。      1.  使用<em>退出</em>标志,使<em>线程</em>正常<em>退出</em>,也就是当run方法完成后<em>线程</em>终止。      2.  使用stop方法强行终止<em>线程</em>(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。      3.  使用interrupt方法中断<em>线程</em>。  1. 使用<em>退出</em>标志终止<em>线程</em> 
Python线程的终止方法
a=M() a.start() print dir(a) import time time.sleep(3) import signala._Thread__stop() print a._Thread__stopped True | False
用strace查找进程卡死原因
最近遇到进程卡死的情况,但是自己调试的过程中并不一定能复现,都是需要运行一段时间某些条件下才会触发,对于这种运行着不能破坏现场的情况,我们可以使用gdb -p和strace -p来跟踪。 首先我们用ps auxf查看我们的进程执行到了哪一步: 可以看到执行到了docker exec -i 178.20.1.229_0115034556 ls然后就卡死了 然后我们进一步通过strace查看...
Win10 x64 中VC6 安装卡死、无法单步调试、调试退出进程没有结束
最近使用了Win10 x64的操作系统,由于工作原因还需要用到VC6,于是就悲剧了,遇到了好几个问题: 1、安装VC6的过程中卡死 2、安装完成后没有办法进行单步调试,一单步就报错,心碎呀有木有 3、调试过程中没有正常<em>退出</em>,结果编译器这边调试结束了,任务管理器中的进程却没有<em>退出</em>,只有关闭VC6才能关掉 于是上网找呀找,现在终于能正常使用了,鉴于最近积分紧缺,请需要的移步到下面地址赏个分
shellexecute起进程导致卡死的问题
单独用个<em>线程</em>A,在这个<em>线程</em>里面调用shellexecute去执行B.exe,执行完后<em>线程</em>A<em>退出</em>了,B.exe会卡死么?现在的现象是B.exe启动起来了,但是内存占100多K,用Windbg附加上去,发现卡死在RtlUserThreadStart。。。有什么办法可以解决好这个问题么?
线程自然退出和调用TerminateThread退出线程的区别
#include &quot;stdafx.h&quot; #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;windows.h&amp;gt; class CMyClass { public: CMyClass() { printf(&quot;CMyClass()\n&quot;); } ~CMyClass() { printf(&quot;~CMyClass()\n&quot;); } }; DWORD...
thread.start()到底做了什么?
这篇文章作为Thread类源码剖析的补充,从一个侧面来看Thread源码。也解答了面试高频问题:“多次start一个<em>线程</em>会怎么样?” 答案是:java.lang.IllegalThreadStateException&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; <em>线程</em>状态非法异常 &amp;amp;amp;amp;nbsp; 继承关系是:---&amp;amp;amp;amp;gt;extends IllegalArgumentEx
JVM关闭及线程退出
JVM关闭及<em>线程</em>的<em>退出</em> 一,关闭方式       JVM的关闭意味着将停止系统中所有的任务,可以由其自动关闭也可以主动触发。下面的几个条件都可以使JVM关闭: 1,所有的非守护都已经运行结束。 2,调用了System.exit方法。 3,杀死JVM进程 4,通过系统平台发送关闭信号(比如按Ctrl+C) 二,关闭钩子    如果我们想在JVM关闭时做
测试 ThreadPoolExecutor 中遇到的近似死锁问题
今天在做一个简单的小test时,发现了ThreadPoolExecutor的一个问题,先列出代码:主要功能是往一个链接中插入、删除数据 链表的节点: public class BoundedNode { public Object value; public BoundedNode next; public BoundedNode(Object x){
开启多线程退出后终止异步任务
AsyncTask.cancel()的结束问题 实际项目中有这么一个问题,用户进入详情界面,那么我们就要网络加载数据并展现在UI上,这个加载用<em>线程</em>或者异步。 这里就拿项目中统一用异步任务来获取网络数据把。 用户可能会有这么一个操作,它在一个商品(说说等)列表中,点击一个列表项,进入到相应的详情界面,这时候,我们会开启一个异步任务来获取网络数据,但是网络差的情况下, 用户可能就不愿意等了,立马
VS2017写opencv代码时莫名崩溃卡住不动的解决方法
原因在用mat类的时候鼠标放上去注释出不来就会崩溃。o(≧口≦)o 没保存代码的话让人欲哭无泪有没有 解决方法:将鼠标点在这种类似的位置,(ps:千万别放到Mat上面去),然后用方向键移动到Mat去,这样然后按F12跳到定义,将注释空出一行来,自己写个注释,像这样,就不会导致光标放上去的卡顿了。美滋滋,顺利解决。...
python在子线程中使用pyHook监控键盘无效,需要加pythoncom的初始化
<em>python</em>在子<em>线程</em>中使用pyHook监控键盘无效,需要对WMI进行初始化: #onKeyboardEvent def onKeyboardEvent(event): print "Key:", event.Key if str(event.Key) == 'Space': print "Ok" return True def Keybo
Junit| 采用Junit测试时,注意用户的线程会自动停止
采用Junit测试时,注意用户的<em>线程</em>会自动停止什么意思呢? 正常的程序运行时,JVM的停止是在所有用户<em>线程</em>(也就是非守护<em>线程</em>)运行完毕后才推出JVM,但是如果是在JUnit测试的@Test方法中测试,程序正常运行完毕后用户<em>线程</em>会自动推出而不是一直的得带所有用户<em>线程</em>运行完毕 public class TestJunit { public static void main(String...
线程池中多线程设置超时退出监控
前言 在写多<em>线程</em>程序时,大多数情况下会先excutor创建<em>线程</em>池,然后再创建<em>线程</em>,但是对一些读数据库或者其他IO操作,容易堵住<em>线程</em>,此时就需要给<em>线程</em>设置超时时间,干掉超时的<em>线程</em>再重新拉起一个<em>线程</em>来,但是java<em>线程</em>创建并没有预留超时参数,研究了一下网上也没找到好的解决方案,干脆自己想办法搞了一个。 方案 监控<em>线程</em>往往有这么几种方案首先想到的应该就是future的get方法,有超时时间设置参数
centos 如何关闭卡死的程序?
最近一直在使用centos进行开发,centos里面安装vMware player,在虚拟机里面安装了XP系统。 有的时候centos系统也会卡死的,这个时候,点击“关闭”按钮已经没有用处了,只能用kill 了。 先用 ps aux |grep netbeans 找到与netbeans相关的进程,然后 kill -9 pid就行了。
Android 游戏开发之线程Thread延时开启和停止
创建<em>线程</em>的方法: 1、继承Thread类重写run()方法 public class testThread extends Thread{ @Override public void run() { // TODO Auto-generated method stub super.run(); } } 2、实现Runnable类重写run()方法
cv2.imshow()的图片关闭时出现not responding(没有回应),电脑环境崩溃 图+真相+解决办法
Table of Contents 出问题的代码 现象 解决办法 完整版代码 参考文章 补充说明 出问题的代码 #! /usr/bin/env <em>python</em> # -*- coding: utf-8 -*- import cv2 img = cv2.imread("F:/images/lena.jpg", cv2.IMREAD_COLOR) cv2.imshow("img", ...
并发编程之理解多线程假死现象的原因
<em>线程</em>假死现象的理解
DELPHI-线程的终止和退出
在Delphi中使用<em>线程</em>,当窗体关闭时,如果窗体中启用了<em>线程</em>,一般需要手动关闭,以释放资源。 常用来结束<em>线程</em>的代码为:         PcmThrd.Terminate;         PcmThrd.WaitFor; 即先触发Terminate方法,然后等待<em>线程</em>的结束。 这种方法要求<em>线程</em>不能使用FreeOnTerminate := True; ,否则在WaitFor即将结束的时
Python主线程结束为什么守护线程还在运行?
在实际的交互模式中,主<em>线程</em>只有在Python<em>退出</em>时才终止,所以action函数输出结果还是被打印出来了。” 按照我的理解应该是说,在shell里主<em>线程</em>在输出结果之后并没有真的结束,所以action还会打印结果。 建议把程序编译出来,放到另外的环境中测试,估计就会是你要的结果了。
Python多任务(利用threading创建线程时传入参数--args参数)
  target  : 指定 这个<em>线程</em>去哪个函数里面去执行代码   args:     指定将来调用 函数的时候   传递什么数据过去                   args参数指定的一定是一个元组类型 import threading import time g_nums = [1,2] def test1(temp): temp.append(33) pri...
模板设计模式在Thread的应用
       作为一名java程序员,创建<em>线程</em>是工作中经常干的事情,也是面试中经常被提问的问题。大家都知道java中创建<em>线程</em>有两种最基本的方式: 创建Thread类; 实现runnable借口; 这两种方式有一个共同点就是我们的业务逻辑必须要实现run()这个方法,然后我们调用start()方法来启动<em>线程</em>。跟踪Thread的start()方法源码我们可以看到: public synchro...
python线程异常处理
<em>python</em> 多<em>线程</em>异常
python之使用ctrl+c断开多线程(TcpSocketServer连接)出现端口占用的情况
1.使用setDaemon(True)代替join() 【全部替换】---不然子<em>线程</em>2.在主<em>线程</em>try: while True: time.sleep(1) except KeyboardInterrupt:     # 使用文件内容来判断是否关闭tcpsocketserver连接     with open('文件路径','w') as f: f.writ...
VS2013多线程程序卡住以及各种异常的调试
多<em>线程</em>程序使用了锁,当<em>卡住</em>时,可以如下调试: 点击“调试/全部中断” 然后在“<em>线程</em>”窗口会显示当前运行的各个<em>线程</em>,以及他们的堆栈信息。 这样就可以查看各个<em>线程</em>卡在哪里了。
QThread的用法:开启与退出
QThread有两种用法,一、用moveToThread()将功能类移入到<em>线程</em>QThread中,这个用法可以参照这篇博客:http://blog.csdn.net/lynfam/article/details/7081757,文章讲的深入浅出,层层递进,非常值得一读; 二、还有一种方法就是继承QThread,在run函数中实现子<em>线程</em>,本文主要是讲这种方法的注意事项。QThread::run()是
log4cplus崩溃问题
log4cplus崩溃问题: 在全局静态类初始化中调用会出现崩溃问题
线程退出前的资源释放问题
<em>线程</em><em>退出</em>前的资源释放问题 类似于进程的atexit()函数,<em>线程</em>在<em>退出</em>前也可以执行用户显示定义的一些函数。无论是可预见的<em>线程</em>终止还是异常终止,都会存在资源释放的问题,在不考虑因为运行出错而<em>退出</em>的情况下,如何保证<em>线程</em>终止时能顺利的释放掉自己所占用的资源,特别是锁资源。 资源独占锁的使用: <em>线程</em>为了访问临界资源而为其加上锁,但在访问过程中被外界取消,如果<em>线程</em>处于响应取消状态,且采用异步方...
python下cv.waitKey无响应原因
按下键的时候,焦点要落在窗口上,不能落在cmd窗口上。 另外,一般在imshow()后要使用waitKey(),给图像绘制留下时间,不然窗口会出现无响应情况,并且图像<em>无法</em>显示出来。 int waitKey(int delay=0)  - 延时delay = 0 函数则延时无限长,必须有键按下才继续执行。  - 延时delay > 0 函数返回值为按下的键的ASCII码值,超时则返回
QT关闭UI后线程未结束解决办法
在使用QT时候,UI主<em>线程</em>已经关闭了,但是程序还是在运行(窗口已关闭),过了一会报了个错才异常终止,解决方法是在main.cpp里将 MainWindow w; w.show 改为 MainWindow *w = new MainWindow; w-&amp;gt;show; ...
[python3 OpenCV3填坑之旅]解决图像数学运算后无法正确显示的问题
最近用的OpenCV <em>python</em>3 开发场景识别的应用,遇到了在图像进行数学逻辑运算后<em>无法</em>真确显示的问题,问题代码如下: out = 1*((img[:,:,2]&amp;gt;img[:,:,1])&amp;amp;(img[:,:,1]&amp;gt;img[:,:,0])) print(out.shape,np.sum(out)) while (True): cv2.imshow(&quot;myWin&quot;, (ou...
Java线程调试不进入方法的问题
最近在做一个爬虫,写好了一个<em>线程</em>,用JUnit测试,却怎么也进入不了方法。 后来意识到,test实例作为一个母<em>线程</em>,而我的爬虫<em>线程</em>是子<em>线程</em>,会不会是母<em>线程</em>提前结束了呢,导致子<em>线程</em>也结束了。 于是我想到了join关键字。 在我的<em>线程</em>start之后,加上thread.join(); 该关键字表明,母<em>线程</em>必须等待子<em>线程</em>执行完毕之后才能接下去执行后续步骤。 同时还要注意一点,thread.joi
C# 使用Thread多线程,窗体关闭后进程不退出的解决方案
using System; using System.Threading; using System.Windows.Forms; namespace testS {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponen
运行不息的内核线程kthread
http://blog.csdn.net/qb_2008/article/details/6835783 上节中,我们成功地编译运行了一个linux模块。可惜的是,它只有两个函数,hello_init在模块加载时调用,hello_exit 在模块卸载时调用。这样下去,模块纵使有天大的本事,也只能压缩在这两个函数中。为了避免这种悲剧发生,本节就来学习一种让模块在加载后能一直运行下去的方法——内
关于SpringBoot bean无法注入的问题(与文件包位置有关)
问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统后台数据管理一个module server-platform-app 给移动端提供rest数据接口一个module server-mobile-api 其中server-platform-app 与
Java API_5.0中文版下载
Sun官方发布:Java API_5.0(每一个学java的人都应该看的) 真正中文版, 实践证明打好基础是最重要的。 相关下载链接:[url=//download.csdn.net/download/chenxh/150134?utm_source=bbsseo]//download.csdn.net/download/chenxh/150134?utm_source=bbsseo[/url]
vmware 虚拟化全方位攻略(繁体)下载
最新推出的虚拟化全方位攻略(繁体),只需要这一本,让你不需要住机房 相关下载链接:[url=//download.csdn.net/download/awfssv/2142230?utm_source=bbsseo]//download.csdn.net/download/awfssv/2142230?utm_source=bbsseo[/url]
Flex4 spring整合实例下载
Flex4 spring整合实例,采用了spring-flex-1.0.3.RELEASE-with-dependencies包 相关下载链接:[url=//download.csdn.net/download/qiangjishen/2183598?utm_source=bbsseo]//download.csdn.net/download/qiangjishen/2183598?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 乌班图退出python python线程学习
我们是很有底线的