python并行编程(一)--多线程

此处的示例是对书籍《python并行编程》代码的改进,文档地址:https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/chapter2/06_Thread_synchronization_with_Lock_and_Rlock.html
用threading模块来实现并行编程

import threading
import time
import random

def function(i):
    num = random.randint(1,10)
    time.sleep(num)
    print("sleep: %s  function called by thread %i   \n" % (num, i))
    return

threads = []

for i in range(1, 6):
    t = threading.Thread(target=function, args=(i, ))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

运行结果:
在这里插入图片描述
文档中的代码存在问题,进行了2处修复,加入sleep, 修改join函数的调用位置。加入time.sleep的原因,只有在线程sleep或者线程执行时间到达了cpu的时间片之后,线程才会切换,如果不加time.sleep,线程的执行顺序和for循环的执行顺序一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值