python多线程thread.start_new_thread传参的问题
我的python脚本如下:#!/usr/bin/pythonimportthreadimportsysimportosimporttimedefssh_cmd(numbe...
我的python脚本如下:
#!/usr/bin/python
import thread
import sys
import os
import time
def ssh_cmd(number): //定义一个ssh_cmd函数 参数为ip 作用是 sleep5秒 然后print 这个ip
time.sleep(5)
print number
thread.start_new_thread(ssh_cmd,(1,))
thread.start_new_thread(ssh_cmd,(2,))
thread.start_new_thread(ssh_cmd,(3,))
然后我用thread.strart_new_thread 但是我执行后 这个脚本瞬间就结束了 什么都没有返回 也没有输出
但是我上网查了 传参没有问题啊 到底是为什么呢
我本意是想让python 开多个线程同时处理任务
求助
参数为number 笔误 展开
#!/usr/bin/python
import thread
import sys
import os
import time
def ssh_cmd(number): //定义一个ssh_cmd函数 参数为ip 作用是 sleep5秒 然后print 这个ip
time.sleep(5)
print number
thread.start_new_thread(ssh_cmd,(1,))
thread.start_new_thread(ssh_cmd,(2,))
thread.start_new_thread(ssh_cmd,(3,))
然后我用thread.strart_new_thread 但是我执行后 这个脚本瞬间就结束了 什么都没有返回 也没有输出
但是我上网查了 传参没有问题啊 到底是为什么呢
我本意是想让python 开多个线程同时处理任务
求助
参数为number 笔误 展开
3个回答
展开全部
因为thread.start_new_thread(ssh_cmd,(3,))开的线程会和主线程一起结束,所以等不到执行print number 程序就结束了。
在使用python多线程的时候,踩到了主线程未等待多线程进程运行完成就结束,导致多线程无效的坑。后来想到自己写个全局变量监控多线程是否全部完成。话不多说,上代码。
unfinished_thread 为全局变量 ,用于记录未完成线程数。
运行结果如下:
线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。
线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询