python中threading超线程用法实例分析
作者:igoo 发布时间:2023-12-14 13:05:45
本文实例讲述了python中threading超线程用法。分享给大家供大家参考。具体分析如下:
threading基于Java的线程模型设计。锁(Lock)和条件变量(Condition)在Java中是对象的基本行为(每一个对象都自带了锁和条件变量),而在Python中则是独立的对象。Python Thread提供了Java Thread的行为的子集;没有优先级、线程组,线程也不能被停止、暂停、恢复、中断。Java Thread中的部分被Python实现了的静态方法在threading中以模块方法的形式提供。
threading 模块提供的常用方法:
threading.currentThread(): 返回当前的线程变量。
threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。
threading模块提供的类:
Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local.
Thread是线程类,与Java类似,有两种使用方法,直接传入要运行的方法或从Thread继承并覆盖run():
# encoding: UTF-8
import threading
# 方法1:将要执行的方法作为参数传给Thread的构造方法
def func():
print 'func() passed to Thread'
t = threading.Thread(target=func)
t.start()
# 方法2:从Thread继承,并重写run()
class MyThread(threading.Thread):
def run(self):
print 'MyThread extended from Thread'
t = MyThread()
t.start()
构造方法:
Thread(group=None, target=None, name=None, args=(), kwargs={})
group: 线程组,目前还没有实现,库引用中提示必须是None;
target: 要执行的方法;
name: 线程名;
args/kwargs: 要传入方法的参数。
实例方法:
isAlive(): 返回线程是否在运行。正在运行指启动后、终止前。
get/setName(name): 获取/设置线程名。
is/setDaemon(bool): 获取/设置是否守护线程。初始值从创建该线程的线程继承。当没有非守护线程仍在运行时,程序将终止。
start(): 启动线程。
join([timeout]): 阻塞当前上下文环境的线程,直到调用此方法的线程终止或到达指定的timeout(可选参数)。
一个使用join()的例子:
# encoding: UTF-8
import threading
import time
def context(tJoin):
print 'in threadContext.'
tJoin.start()
# 将阻塞tContext直到threadJoin终止。
tJoin.join()
# tJoin终止后继续执行。
print 'out threadContext.'
def join():
print 'in threadJoin.'
time.sleep(1)
print 'out threadJoin.'
tJoin = threading.Thread(target=join)
tContext = threading.Thread(target=context, args=(tJoin,))
tContext.start()
运行结果:
in threadContext.
in threadJoin.
out threadJoin.
out threadContext.
希望本文所述对大家的Python程序设计有所帮助。


猜你喜欢
- 本文实例讲述了python获取图片颜色信息的方法。分享给大家供大家参考。具体分析如下:python的pil模块可以从图片获得图片每个像素点的
- UltraEdit简介UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本(如果电脑配
- RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。我的
- Urllib官方文档地址:https://docs.python.org/3/library/urllib.htmlurllib提供了一系列
- 背景之前是用的是typora来写的文章,最近typora最近开始收费了,所以就不想用了,于是找到了一个替代品MarkText,感觉跟typo
- isU是大小写分的意思,这里s还有则不包括换行符而U是反转了匹配数量的值使其不是默认的重复,大概就是这样了个体我们看文章。正则后面的/(.*
- JSP之表单提交get和post的详解及实例一 get和post的区别二 实战(post方式提交)1、login.jsp<%@ pag
- 直接赋值: 对象的引用,也就是给对象起别名浅拷贝: 拷贝父对象,但是不会拷贝对象的内部的子对象。深拷贝: 拷贝父对象. 以及其内部的子对象在
- Flask Web开发实战学习笔记Flask简介Flask是使用Python编写的Web微框架。Web框架可以让我们不用关 心底层的请求响应
- 数组编程使用Numpy数组可以使你利用简单的数组表达式完成多项数据操作任务,而不需要编写大量的循环,这个极大的帮助了我们高效的解决问题。我们
- 1.建立连接字符串,里面包含数据库名称、用户名和密码2.建立操作字符串,里面是对数据操作的SQL语句3.建立Connection,用连接字符
- 一、语法:cap = cv2.VideoCapture(0)说明:参数0表示默认为笔记本的内置第一个摄像头,如果需要读取已有的视频则参数改为
- 今天的问题是请问以下 alert 弹出值分别是什么?var f = function f2()&nb
- 本文实例讲述了python清除指定目录内所有文件中script的方法。分享给大家供大家参考。具体如下:将脚本存储为stripscripts.
- 前言:支付宝 2022 集五福活动正式开启数据显示,过去六年累计参与支付宝集五福的人数已经超过了 7 亿,每 2 个中国人里就有 1 个曾扫
- 我们可以很轻松的从1到9或者从9到1正着背一遍,反着背一遍。但是想要在编程实现这些看起来简单的操作,就没那么容易了。因为计算机需要一些指令,
- 在服务端程序开发的过程中,cookie经常被用于验证用户登录。golang 的 net/http 包中自带 http cookie的定义,下
- 过程名:ManualPagination作 用:采用手动分页方式显示文章具体的内容参 数:ArticleID,strContentSub&n
- 在填写表单的时候为了让用户有更好的体验,有时需要根据用户的输入出现提示共用户选择,我这个就是根据输入的内容,从数据库取出相关内容以供选择,这
- 介绍set 顾明思义,就是个集合,集合的元素是唯一的,无序的。一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能