Python中进程无法结束的处理办法
1.方法一 http://hi.baidu.com/javalang/item/72fabf2359a30b464799625e
也就是说当线程使用start方法运行起来后,只有当run方法运行结束,一个线程才会结束。
import threading
from threading import Thread
import time
class MyThread(Thread):
over=False
def __init__(self):
Thread.__init__(self)
def run(self):
while not self.over:
print "hello"
time.sleep(2)
def kill(self):
self.over=True
if __name__=='__main__':
t=MyThread()
t.start()
print 'wait 5s'
time.sleep(5)
t.kill()
该方法适合run()方法中不包含死循环程序,若run()包含死循环,则此方法无法结束该线程
2.方法二
import threading
import thread
import time
import os
import urllib
def timer():
time_start = time.time()
while(1):
time_end = time.time()
if ((time_end - time_start) > 4):
return 1
def printf():
i = 0
while(1):
i = i + 1
print i
time.sleep(1)
def run():
sub_thread1 = thread.start_new_thread(printf,())
try:
if(timer()):
sub_thread1.exit()
except AttributeError:
pass
print "stop\n"
print "success\n"
if __name__=='__main__':
run()
开一个线程,该线程为死循环,则使用Thread类的exit方法可以退出,一般情况建议使用Thread.threading
若子线程触发了一个新的进程,则此方法无效,需使用父进程杀死该子进程
方法三:
import threading
import thread
import time
import os
import urllib
def timer():
time_start = time.time()
while(1):
time_end = time.time()
if ((time_end - time_start) > 10):
return 1
def printf():
i = 0
while(1):
i = i + 1
print i
time.sleep(1)
#if(i > 15):
# break
def run(filename):
sub_thread = thread.start_new_thread(os.system,('java -jar'+' '+ filename,))
try:
if(timer()):
sub_thread.exit()
except AttributeError:
pass
tasks = os.popen('jps -m').readlines()
#print tasks
found_task = ""
PID_end_position = 0
for task in tasks:
if filename[3:] in task:
found_task = task
PID_end_position = found_task.find(filename[3:]) - 1
break
if found_task:
PID = found_task[0 : PID_end_position]
os.system("taskkill /f /PID " + PID)
time.sleep(3)
os.system('del /f'+' '+filename)
if __name__=='__main__':
run('D:\\ba-finance-tuangou-bp-job-1.0.1-SNAPSHOT.jar')
Python中进程无法结束的处理办法的更多相关文章
- Python中进程
程序 程序:编写完的代码称为程序. 进程 进程:又称重量级进程,正在执行中的程序称为进程.进程的执行会占用内存等资源.多个进程同时执行时,每个进程的执行都需要由操作系统按一定的算法(RR调度.优先数调 ...
- day 27 Python中进程的操作
进程的创建和结束: multiprocess模块: multiprocess不是一个模块而是python中一个操作.管理进程的包 分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享 ...
- python中进程、线程、协程简述
进程 python中使用multiprocessing模块对进程进行操作管理 进程同步(锁.信号量.事件) 锁 —— multiprocessing.Lock 只要用到了锁 锁之间的代码就会变成同步的 ...
- python中进程间通讯——文件锁之fcntl模块的使用
python 中给文件加锁——fcntl模块import fcntl 打开一个文件##当前目录下test文件要先存在,如果不存在会报错.或者以写的方式打开f = open('./test')对该文件加 ...
- python c++ 混合编程中python调用c++string返回类型的函数,python中返回为数字的解决办法
本随笔解决 Python使用ctypes 调用c++dll 字符串返回类型函数,在python中显示为数字:原文解决方案见so: https://stackoverflow.com/questions ...
- Python中进程和线程的总体区别
Num01–>线程 线程是操作系统中能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. 一个线程指的是进程中一个单一顺序的控制流. 一个进程中可以并发多条线程,每条线程并行 ...
- python中进程池的应用
#原创,转载请联系 假设我们写的一个程序需要运行100个子进程的时候,那么写程序时,不可能循环创建销毁100个进程吧?进程的创建与销毁是很耗系统的资源的. 进程池的作用就体现出来了. 进程池可以控制进 ...
- python中进程池和回调函数
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
- python中进程详解
1:pdb调试:基于命令行的调试工具,非常类似gnu和gdb调试,以下是常用的调试命令: 可以python -m pdb xxx.py(你的py文件名)进入命令行调试模式 命令 简写命令 作用 bea ...
随机推荐
- iTextSharp操作pdf之pdfCreater
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- python的sorted函数对字典按value进行排序
场景:词频统计时候,我们往往要对频率进行排序 sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数.其中iterable表示可 ...
- html---规范、细节积累-01
语义错误 块级元素可以包含内联元素和某些块级元素,内联元素不能包含块级元素,只能包含内联元素 页面可能正常解析,但不符合语义.浏览器自带容错机制,对于不规范的写法也能够正确解析,各浏览器的容错机制不同 ...
- PIL图片合成旋转缩放
用PIL实现图片的旋转,缩放,合成 我们需要知道合成位置的中心点坐标,用中心点坐标,不使用左顶点的坐标是由于缩放过程容易计算. 假设A是局部透明的图片,我们希望把B放在A的底部,仅从A的透明部分显示B ...
- java1.8环境配置+win10系统
Java环境配置相关 Java jdk 1.8版本的环境配置和1.7版本 存在一些差异,当然不同的操作系统可能会对jdk配置有一定的变化.本文我主要说1.8版本的jdk在window10 系统上的配置 ...
- JAVA(一)变量
public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(" ...
- Hadoop(五)分布式集群中HDFS系统的各种角色
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...
- ssh连接远程主机免密登入
核心思想: 1.本地主机生成公钥私钥,私钥自己存着,公钥传到远程主机.ssh文件夹下authorized_keys文件(默认是这个,用追加的方式) 2.本地连接远程主机,公私钥对上就可以免密登入了. ...
- java SE :标准输入/输出
一 标准设备输入/输出 A 标准输入/输出类 System B 控制台读写类 Console 标准输入/输出类 System 1 标准输入.标准输出.错误输出流 // 标准输入流 public f ...
- Robot Framework + Selenium2Lib
Robot Framework + Selenium2Lib 最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具 ...