精华内容
下载资源
问答
  • python多线程退出
    2021-03-05 16:29:37

    pro.waitFor();

    导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。

    一般都是用一个线程去做处理运行,另一个线程来做管理,

    try {

    final Process pro = Runtime.getRuntime().exec("notepad.exe");

    new Thread(new Runnable() {

    public void run() {

    try {

    pro.waitFor();

    System.out.println(1);

    pro.destroy();

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    }

    }).start();

    new Thread(new Runnable() {

    public void run() {

    try {

    Thread.sleep(1000);

    pro.destroy();

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    }

    }).start();

    } catch (IOException e) {

    e.printStackTrace();

    }

    我用的是一个新的线程,一般用主线程去做处理,控制他的关闭。你的另一个其他代码也可以执行。对于cmd这个窗体,就完全没有思路了,java程序是没办法把他关闭掉,应该是dos的权限比java的大吧。

    取消

    评论

    更多相关内容
  • 今天小编就为大家分享一篇python多线程调用exit无法退出的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 多代理还好说,再写个爬虫爬一堆下来就好,多线程可就麻烦多了,多线程一旦发出去了,基本等同于失控的状态,你无法去结束或者是重启一个线程,最多只能是获取线程的信息,没有实际的控制权,而且Python官方也没有...
  • 本文实例为大家分享了python多线程下信号处理程序示例的具体代码,供大家参考,具体内容如下 下面是一个网上转载的实现思路,经过验证,发现是可行的,就记录下来。 思路 python多线程中要响应Ctrl+C的信号以杀死...
  • 经常会遇到下述问题:很多io busy的应用采取多线程的方式来解决,但这时候会发现python命令行不响应ctrl-c 了,而对应的java代码则没有问题: 复制代码 代码如下: public class Test {   public static void main...
  • 下面通过代码给大家介绍python子线程退出问题,具体内容如下所示: def thread_func(): while True: #do something #do something #do something t=threading.Thread(target = thread_func) t.start() # main ...
  • 退出python多线程编程的方法发布时间:2020-07-11 11:47:33来源:亿速云阅读:104作者:清晨小编给大家分享一下退出python多线程编程的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!python多...

    退出python多线程编程的方法

    发布时间:2020-07-11 11:47:33

    来源:亿速云

    阅读:104

    作者:清晨

    小编给大家分享一下退出python多线程编程的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!python多线程编程退出的方法是在启动线程之前设置【daemon】这个属性为“True”。即当父进程结束时,所有的子进程跟着全部结束。

    2a4f631076c38e1e9958675c3552736e.png

    首先补充一个知识点

    daemon:一个布尔值,指示此线程是否为守护线程(真)(假)。必须在start()调用之前设置此参数,否则RuntimeError引发该参数。它的初始值是从创建线程继承的;主线程不是守护程序线程,因此在主线程中创建的所有线程默认为 daemon= False。当没有活动的非守护线程时,整个Python程序将退出。只要在启动线程之前设置了这个属性为True,当父进程结束时,所有的子进程跟着全部结束.

    接下来我们一起看看代码部分举例:import threading,time,random

    class Sea:

    def __init__(self):

    self.__sea = 0

    def m(self,i):

    # 随机时间进行打印

    time.sleep(random.random()*2)

    print(i)

    if i == 1:

    self.__sea = 1

    def main(self):

    Threads = []

    # 将会启动10个线程,线程id为 1 时全部线程终止!

    for i in range(10):

    t = threading.Thread(target=self.m,args=(i,))

    t.daemon = 1

    Threads.append(t)

    # 启动所有线程

    for i in Threads:

    i.start()

    # 当标志位【 sea 】时所有多线程结束

    while 1:

    if self.__sea:

    break

    print('线程已退出!')

    Sea().main()

    # 继续执行后续程序

    for i in range(5):

    print('yeah!')

    此时,main这个函数对于多线程来讲,便是父进程,也就是守护进程。预计会进行10次循环的数字打印,但是当self.__sea这个标志位为真时,所有的剩余子线程将不会再执行,直接结束进行后续的操作。

    结果如下:

    6de3319763662d639c13bee07ce77088.png

    看完了这篇文章,相信你对退出python多线程编程的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

    展开全文
  • python多线程编程退出的方法是在启动线程之前设置【daemon】这个属性为“True”。即当父进程结束时,所有的子进程跟着全部结束。首先补充一个知识点daemon:一个布尔值,指示此线程是否为守护线程(真)(假)。必须在...

    python多线程编程退出的方法是在启动线程之前设置【daemon】这个属性为“True”。即当父进程结束时,所有的子进程跟着全部结束。

    首先补充一个知识点

    daemon:一个布尔值,指示此线程是否为守护线程(真)(假)。必须在start()调用之前设置此参数,否则RuntimeError引发该参数。它的初始值是从创建线程继承的;主线程不是守护程序线程,因此在主线程中创建的所有线程默认为 daemon= False。当没有活动的非守护线程时,整个Python程序将退出。只要在启动线程之前设置了这个属性为True,当父进程结束时,所有的子进程跟着全部结束.

    接下来我们一起看看代码部分举例:import threading,time,random

    class Sea:

    def __init__(self):

    self.__sea = 0

    def m(self,i):

    # 随机时间进行打印

    time.sleep(random.random()*2)

    print(i)

    if i == 1:

    self.__sea = 1

    def main(self):

    Threads = []

    # 将会启动10个线程,线程id为 1 时全部线程终止!

    for i in range(10):

    t = threading.Thread(target=self.m,args=(i,))

    t.daemon = 1

    Threads.append(t)

    # 启动所有线程

    for i in Threads:

    i.start()

    # 当标志位【 sea 】时所有多线程结束

    while 1:

    if self.__sea:

    break

    print('线程已退出!')

    Sea().main()

    # 继续执行后续程序

    for i in range(5):

    print('yeah!')

    此时,main这个函数对于多线程来讲,便是父进程,也就是守护进程。预计会进行10次循环的数字打印,但是当self.__sea这个标志位为真时,所有的剩余子线程将不会再执行,直接结束进行后续的操作。

    结果如下:

    推荐课程:python语言设计(嵩天教授)

    展开全文
  • 当没有活动的非守护线程时,整个Python程序将退出。只要在启动线程之前设置了这个属性为True,当父进程结束时,所有的子进程跟着全部结束. 接下来我们一起看看代码部分举例: import threading,time,ran

    首先补充一个知识点

    daemon:一个布尔值,指示此线程是否为守护线程(真)(假)。必须在start()调用之前设置此参数,否则RuntimeError引发该参数。它的初始值是从创建线程继承的;主线程不是守护程序线程,因此在主线程中创建的所有线程默认为 daemon= False。当没有活动的非守护线程时,整个Python程序将退出。只要在启动线程之前设置了这个属性为True,当父进程结束时,所有的子进程跟着全部结束.

    接下来我们一起看看代码部分举例:

     
    import threading,time,random
    
    class Sea:
    
        def __init__(self):
    
            self.__sea = 0
    
        def m(self,i):
    
    # 随机时间进行打印
    
            time.sleep(random.random()*2)
    
            print(i)
    
            if i == 1:
    
                self.__sea = 1
    
        def main(self):
    
            Threads = []
    
            # 将会启动10个线程,线程id为 1 时全部线程终止!
    
            for i in range(10):
    
                t = threading.Thread(target=self.m,args=(i,))
    
                t.daemon = 1
    
                Threads.append(t)
    
            # 启动所有线程
    
            for i in Threads:
    
                i.start()
    
            # 当标志位【 sea 】时所有多线程结束
    
            while 1:
    
                if self.__sea:
    
                    break
    
            print('线程已退出!')
    
    Sea().main()
    
    # 继续执行后续程序
    
    for i in range(5):
    
        print('yeah!')
    

    此时,main这个函数对于多线程来讲,便是父进程,也就是守护进程。预计会进行10次循环的数字打印,但是当self.__sea这个标志位为真时,所有的剩余子线程将不会再执行,直接结束进行后续的操作。

    展开全文
  • Python 线程退出线程

    千次阅读 2021-12-22 22:02:02
    Python 线程退出线程
  • Python多线程退出控制

    万次阅读 多人点赞 2019-06-15 14:34:03
    Python多线程退出控制 日常前言 最近接 到一个抢票的爬虫外包,那个网站及其之捞,访问购票地址竟然还要排队,在购票高峰临时升一下服务器配置不行吗…没办法,甲方爸爸的要求还得做啊,其中一个障碍便是目标...
  • python线程退出

    2020-11-23 18:31:03
    python多线程中是没有退出方法的,但是在实际中经常需要退出某个写死的程序,在这个时候使用ctrl+c显得有些不妥。 标志位实现 在百度中找到的方法有抛出异常还有改写类方法做标志位的实现,但是都觉得略微麻烦,故...
  • 由于代码第26行设置了daemon=False这个多线程程序无法退出,如果改为daemon=True就没事了。代码可以直接运行p.s: basic_worker里面我设置了while循环的break条件。为什么会产生这样的情况呢?#!/usr/bin/env python#...
  • 在使用多线程的过程中,我们知道,python的线程是没有stop/terminate方法的,也就是说它被启动后,你无法再主动去退出它,除非主进程退出了,注意,是主进程,不是线程的父进程. 一个比较合理的方式就是把原因需要放到...
  • python多线程超时退出

    2021-04-25 11:11:15
    python多线程超时退出 # -*- coding: utf-8 -*- # @Time : 2021/4/20 17:37 # @Author : LinMD # @File : ex_server.py # @Descip : import time import threading import queue def call_back_func(message): ...
  • 用一颗药丸停止多线程 如果我们必须停止多个线程,则可以更好地看出使用药丸杀死的优势一次,因为一粒药将对所有人有效。 doit完全不会更改,只有main处理线程的方式有所不同。 def main(): pill2kill = threading....
  • 我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦start后, 线程就属于失控状态. ...
  • 多线程:在同一个时间做多件事 守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.setDaemon(True),要在thread.start()之前设置,默认是false的,也就是主线程...
  • python多线程中无限循环线程退出问题 import threading import time """ 问题:在创建一个包含无限循环的子线程的时候 无法控制子线程的退出 第一次在写树莓派应用的时候就出现了这个问题 这次在写网络编程大作业...
  • python中的多线程是一个非常...import threadingfrom threading import Lock,Threadimport time,os'''python多线程详解什么是线程?线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之...
  • How can I exit my entire Python application from one of its threads? sys.exit() only terminates the thread in which it is called, so that is no help.I would not like to use an os.kill() solution, as t...
  • from mqtt.subscribe import * from config.config import * from utils.air_condition import get_air import threading from multiprocessing import Process import sys import signal def mqtt_sub(): ...
  • 多线程本用来任务的协作并发,如果你使用强制手段干掉线程,那么很大几率出现意想不到的bug。 请记住一点,锁资源不会因为线程退出而释放锁资源 ! 我们可以举出两个常见的例子: 1. 有个A线程拿到了锁,因为他是...
  • 在做python多线程的时候(threading)使用了.join()可是程序执行完毕还是不能自主退出求解#!/usr/bin/python# -*- coding: utf-8 -*-#encoding=utf-8#Filename:robot.pyimport threadingimport Queue## 变量设置#...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,432
精华内容 18,172
关键字:

python多线程退出