没有合适的资源?快使用搜索试试~ 我知道了~
python threading(多线程)模块
3 下载量 20 浏览量
2020-12-21
00:30:12
上传
评论
收藏 143KB PDF 举报
温馨提示
试读
14页
命令提示符如何打开并运行python文件链接 一、 1.active_count() , activeConut() 方法 功能 active_count() , activeConut() 返回处于alive状态的Thread对象数量 用法: import time import threading def sing(): print("---singing---") time.sleep(10) print(threading.active_count()) 输出:2 当前处于alive的Thread对象为:[, ] 下面给他添加线程对象: impor
资源详情
资源评论
资源推荐
python threading(多线程)模块(多线程)模块
命令提示符如何打开并运行python文件链接
一、一、
1.active_count() , activeConut()
方法方法 功能功能
active_count() ,
activeConut()
返回处于alive状态的Thread对象数量
用法:
import time
import threading
def sing():
print("---singing---")
time.sleep(10)
print(threading.active_count())
输出:2
当前处于alive的Thread对象为:[, ]
下面给他添加线程对象:
import time
import threading
def sing():
print("---singing---")
time.sleep(10)#这里需要让线程休息10秒,不然一瞬间就完成了,然后线程结束
t_1 = threading.Thread(target = sing)
#Thread是threading中比较重要的一个类。下面有介绍。
t_1.start()
t_2 = threading.Thread(target = sing)
t_2.start()
t_3 = threading.Thread(target = sing)
t_3.start()
print(threading.active_count())
#这里也可以写成
#print(threading.activeCount())
activeCount()输出为:5
这5个对象为:
[, , , , ]
2.current_thread() , currentThread()
current_thread() ,
currentThread()
返回当前的返回当前的Thread对象对象
import time
import threading
def sing():
print("---singing---")
time.sleep(10)
t_1 = threading.Thread(target = sing)
t_1.start()
print(threading.current_thread())
print(threading.currentThread())
输出:
---singing---
3. get_ident()
get_ident()
返回当前线程的线程标识符。线程标识符是一个非负整数,并无特殊函数,只是用来标识线程,该整数可能会被返回当前线程的线程标识符。线程标识符是一个非负整数,并无特殊函数,只是用来标识线程,该整数可能会被
循环利用。循环利用。python3.3及以后版本支持该方法及以后版本支持该方法
get_ident()
返回当前线程的线程标识符。线程标识符是一个非负整数,并无特殊函数,只是用来标识线程,该整数可能会被返回当前线程的线程标识符。线程标识符是一个非负整数,并无特殊函数,只是用来标识线程,该整数可能会被
循环利用。循环利用。python3.3及以后版本支持该方法及以后版本支持该方法
import time
import threading
def sing():
print('线程t_1',threading.get_ident())
time.sleep(10)
print('主线程',threading.get_ident())
import time
import threading
def sing():
print('线程t_1',threading.get_ident())
time.sleep(10)
t_1 = threading.Thread(target=sing)
t_1.start()
4.enumerate()
enumerate() 返回当前处于返回当前处于alive状态的所有状态的所有Thread对象列表对象列表
4.1
import time
import threading
def sing():
time.sleep(10)
t_1 = threading.Thread(target = sing)
t_1.start()
t_2 = threading.Thread(target = sing)
t_2.start()
t_3 = threading.Thread(target = sing)
t_3.start()
print(threading.enumerate())
输出:
[, , , , ]
列表后3个分别对应a_1,a_2,a_3 这三个子线程
前两个对应主线程。
4.2
import time
import threading
def sing():
time.sleep(10)
t_1 = threading.Thread(target = sing)
t_1.start()
t_2 = threading.Thread(target = sing)
t_2.start()
print(threading.enumerate())
输出:
[, , , ]
4.3
import time
import threading
def sing():
time.sleep(10)
print(threading.enumerate())
输出:
[, ]
5.stack_size()
stack_size([size])
返回创建线程时使用的栈的大小,如果指定返回创建线程时使用的栈的大小,如果指定size参数,则用来指定后续创建的线程使用的栈大小,参数,则用来指定后续创建的线程使用的栈大小,size必必
须是须是0(表示使用系统默认值)或大于(表示使用系统默认值)或大于32K的正整数。的正整数。
import threading
print(threading.stack_size())#输出当前线程栈的大小
threading.stack_size(43*1024)#设置下一个线程栈的大小43*1024=44032
print(threading.stack_size())
输出
0
44032
6.main_threade()
main_thread() 返回主线程对象,即启动返回主线程对象,即启动python解释器的线程对象。解释器的线程对象。python3.4及以后版本支持该方法及以后版本支持该方法
import time
import threading
def sing():
time.sleep(10)
print(threading.enumerate())
print(threading.main_thread())
输出:
[, ]
二、二、
Thread 对象
threading.Thread 线程类,用于创建和管理线程线程类,用于创建和管理线程
Thread是threading中比较重要的一个类。
可以通过Thread类的构造函数传递一个可调用对象来创建线程
可以继承threading.Thread类创建派生类,并重写__init__和run方法,实现自定义线程对象类。
1.threading.Thread的的start()
start() 自动调用自动调用 run 方法,启动线程,执行线程代码方法,启动线程,执行线程代码
import time
import threading
def sing(i):
print('线程',i)
time.sleep(10)
t_1 = threading.Thread(target=sing,name = 't_1',args='1')
t_1.start()#启动t_1线程
#输出为线程1
#还可以这样写
threading.Thread(target=sing,name = 't_2',args=(2,)).start()
#输出为线程2
输出:
线程1
线程2
2.threading.Thread的的run()
run() 线程代码,用来实现线程的功能与业务逻辑,可以在子类中重写该方法来自定义线程的行为线程代码,用来实现线程的功能与业务逻辑,可以在子类中重写该方法来自定义线程的行为
下面创建线程类。
import time
import threading
class mythread(threading.Thread):#threading.Thread(基类)
def __init__(self,numble):
threading.Thread.__init__(self)
#这里有个规律(我也不太懂,就是总结一下)为什么用threading.Thread.__init__(self)而不用super.__init__.(self)呢,因为class
剩余13页未读,继续阅读
weixin_38537050
- 粉丝: 7
- 资源: 956
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0