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 笔误
展开
 我来答
百度网友7fb4b1a
推荐于2018-05-17
知道答主
回答量:2
采纳率:0%
帮助的人:1934
展开全部
因为thread.start_new_thread(ssh_cmd,(3,))开的线程会和主线程一起结束,所以等不到执行print number 程序就结束了
百度网友8873d7de9
推荐于2016-05-17 · TA获得超过700个赞
知道小有建树答主
回答量:141
采纳率:100%
帮助的人:65万
展开全部

测试如图(Python2.7):

更多追问追答
追问

我怎么都不能运行 number打错了 我改成对的 也是不行 

追答

改成对的,传图上来看看错误提示。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
懒得起名字7iItY
高粉答主

2020-08-28 · 关注我不会让你失望
知道小有建树答主
回答量:267
采纳率:100%
帮助的人:4.6万
展开全部

因为thread.start_new_thread(ssh_cmd,(3,))开的线程会和主线程一起结束,所以等不到执行print number 程序就结束了。

在使用python多线程的时候,踩到了主线程未等待多线程进程运行完成就结束,导致多线程无效的坑。后来想到自己写个全局变量监控多线程是否全部完成。话不多说,上代码。


unfinished_thread 为全局变量 ,用于记录未完成线程数。

运行结果如下:


线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。

线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式