`
kanpiaoxue
  • 浏览: 1745859 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

线程start() 和 setDaemon() 的解析

 
阅读更多

最近研究python。看了部分内容,开始尝试写Multiple-thread(多线程)的东西。中间遇到了问题:我书写了自己的线程类,在实例化之后,运行start()。程序会立即执行一次,而不像run()方面里面我定义的while True: 里面的代码那样运行。找了好久,才发现:原来我设置了setDaemon(True),然后start()。因为线程是守护线程,主线程结束之后,它会立即结束。当我把setDaemon去掉之后,就没有问题了。

而且给线程命名self.name = name ,要生效必须用start(),而不能用run()。因为run()被调用的时候,self.name指向的是主线程MainThread

分享到:
评论

相关推荐

    python使用Thread的setDaemon启动后台线程教程

    2)setDaemon(False)(默认情况): 当主线程退出时,若前台线程还未结束,则等待所有线程结束,相当于在程序末尾加入join(). 实例: 例子描述:主线程调用giveures给出字符串s的md5摘要,同时在giveures当中启动一个线程打印...

    python线程join方法原理解析

    这篇文章主要介绍了python线程join方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 几个事实 1 python 默认参数创建线程后,不管主线程是否执行...

    JAVA最新面试资料-备战2023金三银四

    Thread.setDaemon()必须在 Thread.start()之前调用,否则运行时会抛出异常。 两者的区别: 唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果全 部的 User Thread 已经撤离,Daemon 没有可...

    Python线程同步的实现代码

    本文介绍Python中的线程同步对象,主要涉及 thread 和 threading 模块。 threading 模块提供的线程同步原语包括:Lock、RLock、Condition、Event、Semaphore等对象。 线程执行 join与setDaemon 子线程在主线程...

    浅谈Python中threading join和setDaemon用法及区别说明

    主要介绍了浅谈Python中threading join和setDaemon用法及区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    解决python父线程关闭后子线程不关闭问题

    我们都知道,python可以通过threading module来创建新的线程,然而在创建线程的线程(父线程)关闭之后,相应的子线程可能却没有关闭,这可能是因为代码中没有使用setDaemon(True)函数。 接下来,使用一个例子来...

    对python 多线程中的守护线程与join的用法详解

    守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.setDaemon(True),要在thread.start()之前设置,默认是false的,也就是主线程结束时,子线程依然在执行。...

    解决PySide+Python子线程更新UI线程的问题

    在我开发的系统,需要子...之后我发现用子线程去调用UI线程是行不通的,只能通过信号和槽来实现,于是 首先,定义一个类,让他实现PySide.QtCore.QObject类 class Data(PySide.QtCore.QObject): #定义信号 mySigna

    Python守护线程用法实例

    即在线程开始(thread.start())之前,调用setDeamon()函数,设定线程的daemon标志。(thread.setDaemon(True))就表示这个线程“不重要”。 如果你想等待子线程完成再退出,那就什么都不用做,或者显示地调用...

    Java期末复习||应用程序设计-多线程和泛型

    Java应用程序设计之多线程和泛型 Thread、Runnable、Callable 线程操作:isAlive()、isInterrupted()、join()、sleep()、stop()、interrupted()、setDaemon()、setPriority()、yield() 同步与死锁、Object类对线程的...

    python 在threading中如何处理主进程和子线程的关系

    之前用python的多线程,总是处理不好进程和线程之间的关系。后来发现了join和setDaemon函数,才终于弄明白。下面总结一下。 1.使用join函数后,主进程会在调用join的地方等待子线程结束,然后才接着往下执行。 join...

    python小工具-多线程phpmyadmin密码分析

    for username in open("username.txt","r"): ... gushi.setDaemon(True) 53 gushi.start() 54 lines = 5 55 for x in range(lines): 56 y = Crack(url,queue) 57 y.start() 58 threads.append(y)

    android nanohttpd 手机端 迷你服务器

    anoHTTPD是个很简单的http服务器 简单到只有一个java文件 主要原理是用ServerSocket接受请求 对每一个请求的Socket创建一个线程去处理(HTTPSession) 线程内保存Socket 用Properties保存切割出来的head信息和url后...

    python3实现多线程破解tomcat简单密码

    ... for server in ip: print( "[+] Server:",server) print ("[+] Port:",port) print ("[+] Users Loaded:",len(WEAK... work.setDaemon(1) work.start() time.sleep(0.1) print( "\n[-] Done -",timer(),"\n" )

    java 线程Sample

    ExecutorService exec=Executors.newFixedThreadPool(2); Thread1 th1 = new Thread1("CRTA");... th1.setDaemon(true); th1.setPriority(MIN_PRIORITY); th1.start(); Thread1 th2 = new Thread1("CRTB");

    Python守护进程实现过程详解

    即在线程开始(thread.start())之前,调用setDeamon()函数,设定线程的daemon标志。(thread.setDaemon(True))就表示这个线程“不重要”。 如果你想等待子线程完成再退出,那就什么都不用做,或者显示地调用...

    Python多线程编程(三):threading.Thread类的重要函数和方法

    主要介绍了Python多线程编程(三):threading.Thread类的重要函数和方法,本文讲解了线程名称、join方法、setDaemon方法等内容,需要的朋友可以参考下

    python入门到高级全栈工程师培训 第3期 附课件代码

    05 setDaemon方法和继承式调用.baiduyun.downloading 05 setDaemon方法和继承式调用 第34章 01 上节知识回顾 02 并发并行与同步异步的概念 03 GIL的概念 04 同步锁 05 递归锁 06 同步对象event 07 信号量 08 线程...

Global site tag (gtag.js) - Google Analytics