简单例子
import threading
from time import sleep
def lol ( ) :
for i in range ( 3 ) :
print ( "loling....%d" % i)
sleep( 1 )
def weiwa ( ) :
for i in range ( 3 ) :
print ( "weiwa...%d" % i)
sleep( 1 )
if __name__ == '__main__' :
t1 = threading. Thread( target= weiwa)
t2 = threading. Thread( target= lol)
t1. start( )
t2. start( )
print ( "end......" )
定义自己的多线程类
import threading
import time
class CustomThread ( threading. Thread) :
def run ( self) :
for i in range ( 5 ) :
time. sleep( 1 )
out = self. name + '@' + str ( i)
print ( out)
if __name__ == '__main__' :
for x in range ( 5 ) :
t = CustomThread( )
t. start( )
- 每个线程默认有一个名字,没有指定线程对象的name,python会自动为线程指定一个名字。
- threading. Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法
- 通过Thread类的start方法,可以启动该线程,当该线程获得执行的机会时,就会调用run方法执行线程
- 多线程程序的执行顺序是不确定的。当执行到sleep语句时,线程将被阻塞(Blocked),到sleep结束后,线程进入就绪(Runnable)状态,等待调度