python多线程thread.start_new_thread传参的问题

因为thread.start_new_thread(ssh_cmd,(3,))开的线程会和主线程一起结束,所以等不到执行print number 程序就结束了
python多线程thread.start_new_thread传参的问题
测试如图(Python2.7):

2015-01-09
因为thread.start_new_thread(ssh_cmd,(3,))开的线程会和主线程一起结束,所以等不到执行print number 程序就结束了。
在使用python多线程的时候,踩到了主线程未等待多线程进程运行完成就结束,导致多线程无效的坑。后来想到自己写个全局变量监控多线程是否全部完成。话不多说,上代码。

unfinished_thread 为全局变量 ,用于记录未完成线程数。
运行结果如下:

线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。
线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行
2020-08-28
因为thread.start_new_thread(ssh_cmd,(3,))开的线程会和主线程一起结束,所以等不到执行print number 程序就结束了2017-10-17
mengvlog 阅读 6 次 更新于 2025-07-19 13:17:57 我来答关注问题0
  •  翡希信息咨询 一文带您了解Python中的并发:异步(Asyncio)和多线程(Multithreading)

    定义:多线程是指在一个程序中创建多个线程,每个线程可以独立执行代码,从而实现并发执行。实现方式:Python的threading模块支持创建和管理多个独立执行流。特点:多线程适用于CPU密集型任务,能够充分利用多核CPU的计算能力。应用场景:当需要同时执行多个计算密集型任务时,多线程可以显著提升程序执行效率。异步...

  •  翡希信息咨询 Python 多线程编程实战:threading 模块的最佳实践和常见问题

    线程在创建、运行、阻塞、死亡等状态之间转换。在编写多线程程序时,需要正确管理线程的生命周期,包括启动、停止和销毁线程。使用 thread.start() 方法启动线程,使用 thread.join() 方法等待线程结束。资源管理 线程在创建和运行过程中会消耗系统资源。因此,在程序结束时,应正确关闭和释放线程资源,以避...

  •  翡希信息咨询 threading简介(创建多线程的两种方法)★

    threading是Python内置的一个用于创建多线程的库,创建多线程的两种方法分别是:先定义函数再用Thread方法创建线程:首先定义一个目标函数,该函数包含线程需要执行的代码。使用threading.Thread类创建一个线程对象,通过target参数指定目标函数,args参数传递目标函数的参数,name参数可以指定线程的名称。调用线程对...

  •  文暄生活科普 python3.8+的thread线程和asyncio异步编程到底哪个更快?

    然而,针对CPU密集型任务,多线程(Threading)可能表现更佳。多线程能够充分利用多核CPU资源。然而,值得注意的是,由于Python的全局解释器锁(GIL)的存在,同一时刻最多只有一个线程可以执行Python字节码,这在一定程度上限制了线程的并行能力。因此,对于特定情况下,使用进程(multiprocessing)可能成为更优...

  •  文暄生活科普 threading简介(创建多线程的两种方法)★

    一、什么是threading?threading是Python内置的一个创建多线程的库,调用threading库中的threading.Thread方法来创建线程。创建多线程的基本语法为:threading.Thread(target=函数名, args=(函数参数1,...函数参数n), name='线程名')。二、threading的使用方法 1、创建线程的思路1:先定义函数再用Thread方...

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部