python多线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多线程相关的知识,希望对你有一定的参考价值。
多线程运行(类似于同时执行多个不同程序)的优点:
1. 把占据时间长的程序放到后台处理
2. 可以显示处理的进度
3. 程序的运行速度可能加快
4. 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
线程的特点:
1. 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口
2. 线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
3. 每个线程都有他自己的一组CPU寄存器,称为线程的上下文。线程的上下文反映了线程上次运行该线程的CPU寄存器的状态
4. 指令指针和堆栈指针寄存器是线程上下文中最重要的寄存器
5. 线程可以被抢占(中断)
6. 在其他线程正在运行时,线程可以暂时搁置(也称为睡眠)-- 这就是线程的退让
Python中使用线程有两种方式:函数或者用类来包装线程对象
python内嵌time模块介绍:
clock()
该函数有两个功能,
在第一次调用的时候,返回的是程序运行的实际时间;
以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔
sleep(seconds)
线程推迟指定的时间运行,经过测试,单位为秒
ctime()
将一个时间戳(默认为当前时间)转换成一个时间字符串
一个最简单的实例:
import time if __name__ == ‘__main__‘: time.sleep(1) print(‘clock1:%s‘ % time.ctime(time.clock())) time.sleep(1) print(‘clock2:%s‘ % time.ctime(time.clock())) time.sleep(1) print(‘clock3:%s‘ % time.ctime(time.clock()))
还有更多time模块的api......
线程的创建、启动、挂起和退出
# coding=utf8 import threading import time # 线程的创建 class MyThread(threading.Thread): def run(self): for i in range(3): time.sleep(1) msg = "I‘m " + self.name +‘@‘ + str(i) print(msg) def test(): # 启动5个线程 for i in range(5): t = MyThread() t.start() if __name__ == ‘__main__‘: test()
执行结果:
I‘m Thread-1 @ 0
I‘m Thread-2 @ 0
I‘m Thread-5 @ 0
I‘m Thread-3 @ 0
I‘m Thread-4 @ 0
I‘m Thread-3 @ 1
I‘m Thread-4 @ 1
I‘m Thread-5 @ 1
I‘m Thread-1 @ 1
I‘m Thread-2 @ 1
I‘m Thread-4 @ 2
I‘m Thread-5 @ 2
I‘m Thread-2 @ 2
I‘m Thread-1 @ 2
I‘m Thread-3 @ 2
以上是关于python多线程的主要内容,如果未能解决你的问题,请参考以下文章