VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python爬虫 >
  • Python中的Futures


位于concurrent.futures和asyncio中,用于表示带有延迟的操作;将处于等待状态的操作,用futures包含起来,添加到队列当中,其操作状态可以随时查询,其结果和异常也会在操作后被返回。
一般情况下,如果我们只是使用futures,不需要考虑其实现,因这些已经在底层将其完成了,如上列中的done方法用于判断操作是否执行完成result方法,用于返回的结果或异常。

Python threading 模块实例3
import threading
from time import sleep, ctime
# 特殊方法__call__()在 子类中必须要写为 run()
list_args = [3, 2, 1, 1, 1]
class MyThread(threading.Thread):
    def __init__(self, func, args, name=''):
        threading.Thread.__init__(self)
        self.name = name
        self.func = func
        self.args = args
    def run(self):
        self.func(*self.args)
def ThreadFunction(i, sleepSec):
    print(f'线程 {i}启动 : {ctime()}\n')
    sleep(sleepSec)
    print(f'线程 {i}关闭: {ctime()}\n') 
def main():
    print('主线程开始', ctime())
    threads = []
    nloops = range(len(list_args))
    for i in nloops:
        t = MyThread(ThreadFunction, (i+1, list_args[i]), ThreadFunction.__name__)
        threads.append(t)
    for i in nloops: # 开始线程
        threads[i].start()
    for i in nloops: # 线程等待
        threads[i].join() # 线程结束
    print(f'所有线程关闭: {ctime()}')
if __name__ == '__main__':
    main()



相关教程