Daemon 守护线程(27-11)
t2.setDaemon(True)不再等待里面的sleep(5)。
当设成setDaemon(True)这个线程就不等了。
例子一:
import threading
from time import ctime, sleep def music(func):
for i in range(2):
print(func, ctime()) # 1 执行 # 5 执行
sleep(1)
print("end music", ctime()) # 4 执行 # 6 执行 def move(func):
for i in range(2):
print(func, ctime()) # 2 执行
sleep(5)
print("end move", ctime())
threads = []
t1 = threading.Thread(target=music,args=("小苹果",))
threads.append(t1)
t2 = threading.Thread(target=move,args=("华尔街之狼",))
threads.append(t2)
if __name__ == "__main__":
t2.setDaemon(True)
for t in threads:
t.start()
print("程序执行结束", ctime()) # 3 执行
程序运行结果:
小苹果 Fri Sep 7 20:04:24 2018
华尔街之狼 Fri Sep 7 20:04:24 2018
程序执行结束 Fri Sep 7 20:04:24 2018
end music Fri Sep 7 20:04:25 2018
小苹果 Fri Sep 7 20:04:25 2018
end music Fri Sep 7 20:04:26 2018
------------------------------------------------------------------------------------------------------
例子二:
t.setDaemon(True)谁也不等待
import threading
from time import ctime, sleep def music(func):
for i in range(2):
print(func, ctime()) # 1 执行
sleep(1)
print("end music", ctime()) def move(func):
for i in range(2):
print(func, ctime()) # 2 执行
sleep(5)
print("end move", ctime())
threads = [] t1 = threading.Thread(target=music,args=("小苹果",)) threads.append(t1) t2 = threading.Thread(target=move,args=("华尔街之狼",)) threads.append(t2) if __name__ == "__main__":
for t in threads:
t.setDaemon(True)
t.start()
print("程序执行结束", ctime()) # 3 执行
程序运行结果:
小苹果 Fri Sep 7 20:18:31 2018
华尔街之狼 Fri Sep 7 20:18:31 2018
程序执行结束 Fri Sep 7 20:18:31 2018
Daemon 守护线程(27-11)的更多相关文章
- join和 Daemon守护线程
一.前言 一个程序至少有一个主线程,主线程启动子线程后,它们之间并没有隶属关系.主线程和子线程执行是并行的,相互独立.主线程执行完毕后默认不等子线程执行结束就接着往下走了,如果有其他程序就会运行另外的 ...
- (4)进程---daemon守护线程和join阻塞
join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用 ...
- java 多线程:Thread类常用方法:setPriority优先级、interrupt中断标记、suspend暂停与唤醒resume(已过时);daemon守护线程
常用方法: boolean isAlive() 测试此线程是否存活. boolean isDaemon() 测试此线程是否为守护程序线程. static void sleep?(long millis ...
- Java Daemon 守护线程
Java中可以通过Thread或ThreadGroup的setDaemon方法将线程设置为守护线程 当所有非守护线程退出后 守护线程将被杀死不在运行 .Net中可以通过设置IsBackground属性 ...
- Java中的守护线程和非守护线程(转载)
<什么是守护线程,什么是非守护线程> Java有两种Thread:"守护线程Daemon"(守护线程)与"用户线程User"(非守护线程). 用户线 ...
- JVM内的守护线程Deamon与用户线程User Thread
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561771.html 一:守护线程Daemon 守护线程:Daemon在希腊神话中解作“守护神”,顾名思义就 ...
- JAVA - 守护线程(Daemon Thread)
转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread) ...
- java并发编程学习: 守护线程(Daemon Thread)
在正式理解这个概念前,先把 守护线程 与 守护进程 这二个极其相似的说法区分开,守护进程通常是为了防止某些应用因各种意外原因退出,而在后台独立运行的系统服务或应用程序. 比如:我们开发了一个邮件发送程 ...
- JAVA并发编程——守护线程(Daemon Thread)
在Java中有两类线程:用户线程 (User Thread).守护线程 (Daemon Thread). 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称 ...
随机推荐
- CSS选择器,层叠
CSS选择器 .class .intro 选择 class="intro" 的所有元素. 1 #id #firstname 选择 id="firstname" ...
- leetcood学习笔记-59-螺旋矩阵二
题目描述: 参考后的提交: class Solution: def generateMatrix(self, n: int): #l = [[0] * n] * n 此创建方法错误 l = [[] f ...
- 线程池 一 ForkJoinPool
java.util.concurrent public class ForkJoinPool extends AbstractExecutorService public abstract class ...
- bzoj1015题解
[题意分析] 给你一张无向图,要求支持删点和询问连通块数. [解题思路] 可以直接可持久化并查集大力艹过去. 考虑到正着删点就是倒着加点,所以并不需要可持久化.复杂度O((k+m)α(n)). [参考 ...
- NX二次开发-设置对象名称函数UF_OBJ_set_name
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> UF_initialize( ...
- flutter 显示base64 图片
后台返回base64 为了本地显示需要转换成Uint8List 1.导入包 import 'dart:convert';2.后台返回base64 格式不被识别需要切分 //'"data:im ...
- 6、 restful API
RESTful 一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. RE ...
- python调用tushare获取沪股通、深股通成份股数据
接口:hs_const 描述:获取沪股通.深股通成分数据 注:tushare库下载和初始化教程,请查阅我之前的文章 输入参数 名称 | 类型 | 必选 ...
- Jupyter的使用复习
Jupyter的使用 esc+m 切换到markdown模式 shift+enter 运行 a 向上新增代码块 b 向下新增代码块 y python代码模式 file-->download as ...
- 23-Ubuntu-文件和目录命令-查看文件内容-more 和 cat
1. more---适合查看内容多的文件 格式: more 文件名 操作键 功能 空格键 显示手册页下一屏 Enter键 一次滚动手册页的一行 b 返回上一屏 f 前滚一屏 q 退出 例: more ...