python的多线程和守护线程
1、创建一个多线程
import threading
import time '''
def threading_func(num):
print("running on number:%s" %(num))
time.sleep(3) if __name__ == '__main__':
t1 = threading.Thread(target=threading_func,args=(1,))
t2 = threading.Thread(target=threading_func,args=(2,))
t1.start()
t2.start()
#这里不会等待就会执行print语句,因为执行这个代码的是一个线程,而t1和t2又分别是2个线程,所以不会有等待就会执行print语句
print("____________________main____________________")
2、join语句,等待某个线程执行完成在往下执行
def threading_func(num):
print("running on number:%s" %(num))
time.sleep(3) if __name__ == '__main__':
t1 = threading.Thread(target=threading_func,args=(1,))
t2 = threading.Thread(target=threading_func,args=(2,))
t1.start()
t2.start()
# t2.join()
print(t1.getName())
#获取线程名
print(t2.getName())
t1.join()
t2.join()
#等待线程t1的执行完成在往下执行,就是wait的意思,子线程t1执行后在往下执行
print("____________________main____________________")
3、线程的守护daemon
import threading
import time def run(n):
print("[%s]----is running----\n" %n)
time.sleep(3)
print("[%s]----is down----\n" %n) '''
def main():
for i in range(5):
t = threading.Thread(target=run,args=[i,])
t.start()
time.sleep(3)
print("start threading",t.getName()) #这个例子是这样的,m是主线程,m这个主线程调用main这个方法,main这个方法又构建了5个子线程,我们就可以设置主线程监视子线程,监视的意思就是主线程退出,无论子线程是否执行
#完毕,都全部退出m.setDaemon(True),这个设置就是m这个主线程监视m的所有的子线程
m = threading.Thread(target=main,args=[])
m.setDaemon(True)
m.start()
# m.join()
print("-----main thread down----") # 结果如下,主线程退出后,子线程有的还没有开始就已经退出了
# -----main thread down----
# [0]----is running---- ''' ''' def main():
for i in range(5):
t = threading.Thread(target=run,args=[i,])
t.start()
time.sleep(3)
print("start threading",t.getName()) #这个例子是这样的,m是主线程,m这个主线程调用main这个方法,main这个方法又构建了5个子线程,我们就可以设置主线程监视子线程,监视的意思就是主线程退出,无论子线程是否执行
#完毕,都全部退出m.setDaemon(True),这个设置就是m这个主线程监视m的所有的子线程
m = threading.Thread(target=main,args=[])
# m.setDaemon(True)
m.start()
# m.join()
print("-----main thread down----") # 结果如下,主线程退出后,子线程有的还没有开始就已经退出了
# -----main thread down----
# [0]----is running---- -----main thread down----
[0]----is running---- start threading Thread-2
[0]----is down---- [1]----is running---- [1]----is down----
start threading Thread-3 [2]----is running---- start threading Thread-4
[3]----is running---- [2]----is down---- start threading Thread-5
[3]----is down---- [4]----is running---- start threading Thread-6
[4]----is down---- '''
python的多线程和守护线程的更多相关文章
- Java多线程之守护线程
Java多线程之守护线程 一.前言 Java线程有两类: 用户线程:运行在前台,执行具体的任务,程序的主线程,连接网络的子线程等都是用户线程 守护线程:运行在后台,为其他前台线程服务 特点:一旦所有用 ...
- 【python】-- 继承式多线程、守护线程
继承式多线程 1.定义 继承式多线程是自己自定义类,去继承theading.Tread这个类,通过类实例.start()启动,去执行run方法中的代码. import threading import ...
- [javaSE] 多线程(守护线程)
我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...
- 20190102(多线程,守护线程,线程互斥锁,信号量,JoinableQueue)
多线程 多进程: 核心是多道技术,本质上就是切换加保存技术. 当进程IO操作较多,可以提高程序效率. 每个进程都默认有一条主线程. 多线程: 程序的执行线路,相当于一条流水线,其包含了程序的具体执行步 ...
- 【多线程】守护线程 Daemon
守护线程 Daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. 代码示例: /** * @Desc ...
- java多线程之守护线程以及Join方法
版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.守护线程概述及示例 守护线程就是为其它线程提供"守护"作用,说白了就是为其它线程服务的,比如GC线程. java程序中线程分 ...
- java多线程之守护线程与非守护线程
在java线程中有两种线程,一种是用户线程,其余一种是守护线程. 守护线程具有特殊的含义,比如gc线程.当最后一个非守护线程执行完后,守护线程随着jvm一同结束工作. java中的守护线程需要将Dae ...
- python多线程,守护线程
https://www.cnblogs.com/liuyang1987/p/6292321.html
- python中多线程与非线程的执行性能对比
此对比说明了一件事: 如果是IO型应用,多线程有优势, 如果是CPU计算型应用,多线程没必要,还有实现锁呢. #!/usr/bin/env python # -*- coding: utf-8 -*- ...
随机推荐
- [UE4]添加机器人
跟玩家角色一样,机器人也是继承自“Character”,动画蓝图也是跟角色玩家的一样,区别是机器人要使用“AIController”来控制
- 解决thinkphp设置session周期无效的问题
thinkphp的session设置周期是无效的:直接的影响就是无法保留用户的登陆状态:用thinkphp开发的项目:关闭浏览器后用户就退出了:即便设置了session周期也没作用:这个bug存在很久 ...
- Java常用的加密解密类(对称加密类)
Java常用的加密解密类 原文转载至:http://blog.csdn.net/wyc_cs/article/details/8793198 原创 2013年04月12日 14:33:35 1704 ...
- linux下一个启动和监测多个进程的shell脚本程序
#!/bin/sh# Author:tang# Date:2017-09-01 ProcessName=webcrawlerInstanceCount=6RuntimeLog='runtime.log ...
- windows环境下简单Jenkins持续集成搭建
Jenkins是基于Java开发的持续集成工具,所以在安装Jenkins之前我们要确定电脑上已经安装了Java JDK并且环境变量配置正确,否则在启动使用java -jar Jenkins.war启动 ...
- python输入输出及变量
知识内容: 1.python输出及注释 2.变量及常量 3.python用户输入 4.Hello,World程序 一.python输出及注释 1.python输出 在python2和python3中的 ...
- linux, Django安装MySQL-python==1.2.5报错
先安装 sudo apt-get install libmysqlclient-dev
- Apache Maven 入门篇
2017-11-09注释:IntelliJ IDEA 2017.2.5 x64 等新版本会安装maven,为了有好的体验 建议在安装目录找到IntelliJ IDEA 2017.2.5\plugins ...
- 2. java获取下周日-下周六的时间
String[] arrDate = new String[7]; String[] arrWeek = new String[7]; int mondayPlus = 0; Calendar cd ...
- Windows 忘记密码
能进入windows,以前保存的凭据,但是不知道啥. windows下进入cmd net user administrator abc123 这样可以重置密码