python代码实现简单的多线程

线程
在程序里一个执行路线就叫做线程,线程是程序执行的最小单位.

多线程
多线程类似于同时执行多个不同程序,多线程运行有如下优点:

使用线程可以把占据长时间的程序中的任务放到后台去处理。
程序的运行速度可能加快
在一些等待的任务实现上如用户输入、文件读写和网络收发数据等。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
Python3 通过两个标准库 _thread 和 threading 提供对线程的支持,由于_thread只是为了兼容python2的thread模块,所以推荐使用threading模块实现多线程。
threading提供了如下方法: 
- run(): 用以表示线程活动的方法。 
- start():启动线程活动。 
- join([time]): 等待至线程中止。 
- isAlive(): 返回线程是否活动的。 
- getName(): 返回线程名。 
- setName(): 设置线程名。

Python中使用线程有两种方式:函数或者用类来包装线程对象。
函数方式:
导入threading包
对象名= threading.Thread(target = 函数名) 创建线程对象
对象名.start() 创建线程
   注:由于代码执行过快,为了显示效果,使用sleep延时执行。 
代码:

import threading
import time


def sing(num):
    for i in range(num):
        print("sing%d" % i)
        time.sleep(0.5)


def dance(num):
    for i in range(num):
        print("dancing%d" % i)
        time.sleep(0.5)


def main():
    """创建启动线程"""
    t_sing = threading.Thread(target=sing, args=(5,))
    t_dance = threading.Thread(target=dance, args=(6, ))
    t_sing.start()
    t_dance.start()


if __name__ == '__main__':
    main()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
运行结果: 


继承方式:
导入threading包
创建一个类继承Thread类,重写run方法
创建类对象,调用start()方法创建线程
   注:由于代码执行过快,为了显示效果,使用sleep延时执行。 
代码:

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():
    for i in range(5):
        t = MyThread()
        t.start()


if __name__ == '__main__':
    test()
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>