python 实现threadpool线程池管理:

from concurrent.futures import ThreadPoolExecutor as te
from concurrent.futures import ProcessPoolExecutor as pe
from concurrent.futures import wait
from concurrent.futures import FIRST_COMPLETED, ALL_COMPLETED, as_completed
import time
import os
import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s -\n %(message)s') Executor_Service = te(max_workers=5) # create a pool contains five workers executor service
Executors_Service_P = pe(max_workers=os.cpu_count()) # create a pool contains max cpu count Process executor service def test_fan(*k):
"""use *k 解包参数"""
# logging.info(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + " ->get result is:" + str(k)+"pid is %s"%os.getpid())
time.sleep(sum(k) / 10) return k if __name__ == '__main__':
print("cur computer max cpu number is %s" % os.cpu_count())
futures = []
for i in range(10):
list_test = [i, i + 1, i + 2]
future = Executor_Service.submit(test_fan, *list_test)
futures.append(future)
Executor_Service.shutdown() # shutdown pool
results = []
for f in futures:
if f.done(): # bool type
results.append(f.result())
print(f"get result of all : {results}")
# part2 演示ALL_COMPLETED
wait(futures, timeout=10, return_when=ALL_COMPLETED)
# 问题:上面虽然提供了判断任务是否结束的方法,但是不能在主线程中一直判断啊\
# TODO如何实现一有任务结束就立马返回结果呢:借助as_completed
for f in as_completed(futures, timeout=10):
print(f.result())

  java 实现线程池管理:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class MyExecuter implements Runnable{ private int i=0;
@Override
public void run(){
while (i<10) { SimpleDateFormat strf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String d = strf.format(new Date());// new Date()为获取当前系统时间
System.out.println(d+" "+Thread.currentThread().getName());
i++;
}
} public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(5);
for (int i = 0; i <10; i++) {
pool.submit(new MyExecuter());
} pool.shutdown(); //shutdown all task wait all task finish ,not longer recv new task ,shutdownNow 立即关闭线程池
}
}

  

python vs java Threadpool的更多相关文章

  1. Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用

    目录: 一.什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式.数据传输方式和服务模型 3) Thrift IDL 二.Thrift的官方网站在哪里? 三.在哪里下载?需要 ...

  2. paip.判断文件是否存在uapi python php java c#

    paip.判断文件是否存在uapi python php java c# ==========uapi file_exists exists() 面向对象风格:  File.Exists 作者: 老哇 ...

  3. paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结

    paip.web数据绑定 下拉框的api设计 选择框 uapi  python .net java swing jsf总结 ====总结: 数据绑定下拉框,Uapi 1.最好的是默认绑定..Map(k ...

  4. Java threadpool机制深入分析

    简介 在前面的一篇文章里我对java threadpool的几种基本应用方法做了个总结.Java的线程池针对不同应用的场景,主要有固定长度类型.可变长度类型以及定时执行等几种.针对这几种类型的创建,j ...

  5. MongoDB的账户与权限管理及在Python与Java中的登陆

    本文主要介绍了MongoDB的账户新建,权限管理(简单的),以及在Python,Java和默认客户端中的登陆. 默认的MongoDB是没有账户权限管理的,也就是说,不需要密码即可登陆,即可拥有读写的权 ...

  6. 谈谈Python、Java与AI

    Python好像天生是为AI而生的,随着AI的火热,特别是用Python写的TensorFlow越来越火,Python的热度越来越高,就像当年Java就是随着互联网火起来的感觉.在我的工作中,Pyth ...

  7. [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能

    [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能 原文: Comparing AWS Lambda performance of Node.js, ...

  8. Python和Java的硬盘夜话

    这是一个程序员的电脑硬盘,在一个叫做"学习"的目录下曾经生活着两个小程序,一个叫做Hello.java,即Java小子:另外一个叫做hello.c ,也就是C老头儿. C老头儿的命 ...

  9. 将来会是Python、Java、Golang三足鼎立的局面吗?

    甲:听说最近java跌落神坛,python称霸武林了,你知道吗? 乙:不是吧,我前几天看python怎么还是第三? 丙:你们都在扯蛋,python在2018年就已经是最好的语言了! 乙:不可能吧? 甲 ...

随机推荐

  1. C#实现的Check Password和锁定输错密码锁定账户

    C#实现的Check Password,并根据输错密码的次数分情况锁定账户:如果输入错误3次,登录账户锁定5分钟并提示X点X分后重试登录.如果5分钟后再次输入,累计输入错误密码累计达到5次.则账户会被 ...

  2. iMacros 入门教程-基础函数介绍(3)

    imacros 的 PAUSE 函数用法 这个函数的作用是暂停程序的运行,也就是断点. 对于有时运行到某一步需要输入内容时,或者需要调试时非常有用 如果你混着 pause 和 wait 一起用,那么当 ...

  3. 剑指offer-面试题64-求1+2+...+n-发散思维

    /* 题目: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C) */ /* 思路: 递归. */ #incl ...

  4. 小Z的袜子(hose) HYSBZ - 2038 莫队+分块

    #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll>pl ...

  5. Jupyter Notebook 常用快捷键 (转)

    Jupyter Notebook 有两种键盘输入模式. 编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的. 命令模式,键盘输入运行程序命令:这时的单元框线为蓝色. 命令模式 (按键 Es ...

  6. Android开发第一天---AndroidStudio的安装和第一个安卓开发

    今天已经是开始学习Android的第二天,我居然才把AndroidStudio开发环境安装并配置好,我只能说“我太难了”,下了好几个版本,终于找到了一个合适的,得出一个结论外国的东西是真的不太好用啊, ...

  7. 2020.01.19【NOIP提高组】模拟比赛-1.水池,2.数字排序,3.球星,4.钻石交易 总结反思

    水池 比赛时 我最讨厌这种数学类题了,我首先想到了这几种情况,设\(jl[][]\)表示两点之间弧的距离,从F到G可以由 F->G F->B->A->G F->A-> ...

  8. webkit 技术内幕 笔记 二

    浏览器历史 80年代末-90年代初:worldwideweb(nexus) -- Berners-Lee 1993: Mosaic浏览器,后来叫网景(Netscape)--Marc Andreesse ...

  9. java9小工具jshell

    1.jshell是jdk9引入的小工具 2.启动jshell 在命令行输入jshell 3.使用jshell 比如定义a=10;b=20;输出a+b的结果,有如下两种方法 方法1:代码写在一行,回车直 ...

  10. 咸鱼的ACM之路:动态规划(DP)学习记录

    按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...