Python 3 之多线程研究

本文介绍了如何使用Python 3实现多线程,包括线程安全的队列操作(queue.Queue)、主线程等待子线程结束的策略(isAlive()方法),以及线程间的公平调度(time.sleep())。通过实例代码,展示了如何构建一个并发读取队列的多线程工具。
摘要由CSDN通过智能技术生成

今天想写一个工具,通过多线程去一个队列中读取数据,要求如下:

1.多个线程同时读取队列,所以队列要做到线程安全:queue.Queue,这个本身就是线程安生的,所以没有问题

2.主线程要等到所有新开的子线程结束后才能结束,这个用到了Threading中的isAlive()方法,来判断线程是否还存活

3.不能出现开了多个子线程,却被一个抢着CPU执行时间,这个学过操作系统的都知道time.sleep(0.01),线程停止一下,让出CPU下面是代码了

我的博客:http://www.paulwangblog.com/

'''
Created on 2011-11-10

@author: PaulWang

Description:

FileName:myThread.py
'''
import threading
import time

class MyThread(threading.Thread):
    def __init__(self, threadname,records):
        threading.Thread.__init__(self, name=threadname)
        self.records = records
        self.name = threadname

    def run(self):
#        time.sleep(0.01)
        print("downloadFromQueue start %d" % self.records.qsize())
        while(self.r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值