#!/usr/bin/env python
# -*- coding: utf-8 -*- """
concurrent 用于线程池和进程池编程而且更加容易,在Python3.2中才有。
""" import sys
from concurrent.futures import ThreadPoolExecutor, as_completed, wait
from multiprocessing import Manager Manager().dict() """
线程池
主线程可以获取某一个线程的状态或者某一个任务的状态以及返回值
当一个线程完成的时候让主线程立即知道
""" import time
def task(num):
time.sleep(num)
print("Thread", num)
return num def NormalUsage():
# 实例化线程池并设置线程池大小
executor = ThreadPoolExecutor(max_workers=5)
# 通过submit提交执行的函数到线程池,并返回futures的类对象,这里是立即返回非阻塞
task1 = executor.submit(task, (1))
task2 = executor.submit(task, (2))
# done()方法用于判定某个任务十分完成
print(task1.done())
# result() 方法可以获取返回值,阻塞的方法
print(task1.result())
# 关闭线程池
executor.shutdown(wait=True) def BBB():
executor = ThreadPoolExecutor(max_workers=5)
# 如何已经成功的任务的返回
tList = []
for num in range(10):
tList.append(executor.submit(task, (num)))
# 主要就是 as_completed()方法,这是一个生成器,传递列表进去,这个列表就是包含线程的列表
for future in as_completed(tList):
data = future.result()
print(data)
executor.shutdown(wait=True) def CCC():
# 实例化线程池并设置线程池大小
executor = ThreadPoolExecutor(max_workers=5)
# 通过submit提交执行的函数到线程池,并返回futures的类对象,这里是立即返回非阻塞
task1 = executor.submit(task, (1))
task2 = executor.submit(task, (2))
# 等待线程完成后再执行。return_when 是什么时候返回,默认是所有线程执行完毕,你可以设置 FIRST_COMPLETED 第一个线程完成就不阻塞了
wait([task1, task2], return_when="ALL_COMPLETED")
print("main")
executor.shutdown(wait=True) if __name__ == '__main__':
CCC()

  

Python的线程池的更多相关文章

  1. Python的线程池实现

    # -*- coding: utf-8 -*- #Python的线程池实现 import Queue import threading import sys import time import ur ...

  2. Python之路【第八篇】python实现线程池

    线程池概念 什么是线程池?诸如web服务器.数据库服务器.文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务.构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就 ...

  3. Python之线程池

    版本一: #!/usr/bin/env python # -*- coding:utf-8 -*- import Queue import threading class ThreadPool(obj ...

  4. python自定义线程池

    关于python的多线程,由与GIL的存在被广大群主所诟病,说python的多线程不是真正的多线程.但多线程处理IO密集的任务效率还是可以杠杠的. 我实现的这个线程池其实是根据银角的思路来实现的. 主 ...

  5. [python] ThreadPoolExecutor线程池 python 线程池

    初识 Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程 ...

  6. 《Python》线程池、携程

    一.线程池(concurrent.futures模块) #1 介绍 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 P ...

  7. [python] ThreadPoolExecutor线程池

    初识 Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程 ...

  8. python实现线程池

    线程池 简单线程池 import queue import threading import time class ThreadPool(object): #创建线程池类 def __init__(s ...

  9. python 绝版线程池

    2.绝版线程池设计思路:运用队列queue a.队列里面放任务 b.线程一次次去取任务,线程一空闲就去取任务 import queueimport threadingimport contextlib ...

随机推荐

  1. Oracle中的decode()函数

    一.decode()函数 1.语法 DECODE(control_value,value1,result1[,value2,result2-][,default_result]); control _ ...

  2. rename_windows.go

    {         if err != nil {             return err         }         return syscall.EINVAL     }     r ...

  3. bzoj5342 CTSC2018 Day1T3 青蕈领主

    首先显然的是,题中所给出的n个区间要么互相包含,要么相离,否则一定不合法. 然后我们可以对于直接包含的关系建出一棵树,于是现在的问题就是给n个节点分配权值,使其去掉最后一个点后不存在非平凡(长度大于1 ...

  4. BZOJ_5015_[Snoi2017]礼物_矩阵乘法

    BZOJ_5015_[Snoi2017]礼物_矩阵乘法 Description 热情好客的请森林中的朋友们吃饭,他的朋友被编号为 1-N,每个到来的朋友都会带给他一些礼物:.其中,第 一个朋友会带给他 ...

  5. 显著性检测(saliency detection)评价指标之sAUC(shuffled AUC)的Matlab代码实现

    AUC_shuffled.m function [score,tp,fp] = AUC_shuffled(saliencyMap, fixationMap, otherMap, Nsplits, st ...

  6. JDK10安装配置详解

    JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包:        地址:http://www.oracle.com/technetwork/java/javase/dow ...

  7. Windbg分析高内存占用问题

    1. 问题简介 最近产品发布大版本补丁更新,一商超客户升级后,反馈系统经常奔溃,导致超市的收银系统无法正常收银,现场排队付款的顾客更是抱怨声声.为了缓解现场的情况, 客户都是手动回收IIS应用程序池才 ...

  8. 深度学习之卷积神经网络(CNN)

    卷积神经网络(CNN)因为在图像识别任务中大放异彩,而广为人知,近几年卷积神经网络在文本处理中也有了比较好的应用.我用TextCnn来做文本分类的任务,相比TextRnn,训练速度要快非常多,准确性也 ...

  9. kubernetes进阶之四:Label和Label Selector

    一:什么是Label Label是Kubernetes系列中另外一个核心概念.是一组绑定到K8s资源对象上的key/value对.同一个对象的labels属性的key必须唯一.label可以附加到各种 ...

  10. 百度推出 MIP Baidu Path链接

    在站长将站点 MIP 化时,需要关注 URL 的一共有三个:MIP URL, MIP-Cache URL 以及 MIP Baidu Path. 从 URL 说起 在互联网中,URL 定义页面的地址,每 ...