python怎么结束进程_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‘)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值