threadpool 测试

import paramiko
import threadpool
import time

def ssh(hostname,port,username,password,cmd):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname,port,username,password)
    stdin,stdout,stderr = ssh.exec_command(cmd)
    print(stdout.read().decode(‘utf-8‘))

if __name__ == ‘__main__‘:
    # t0 = time.time()
    # for i in range(100):
    #     ssh(‘61.237.145.84‘,22,‘ngse_admin‘,‘[email protected]‘,‘df -h‘)
    # print(‘时间‘,time.time() - t0)
    t1 = time.time()
    pool = threadpool.ThreadPool(10)
    l = [([‘1.1.1.1‘,22,‘ngse_admin‘,‘[email protected]‘,‘df -h‘],None) for i in range(100)]
    requests = threadpool.makeRequests(ssh,l)
    [pool.putRequest(res) for res in requests]
    pool.wait()
    print(‘时间‘,time.time() - t1)

测试:

本机: 10个线程池 登录100台机子,用时7秒左右

串行登录,用时56秒以上

时间: 2024-10-10 15:49:14

threadpool 测试的相关文章

Python的threadpool模块

Python的threadpool模块 这是一个使用python实现的线程池库. 安装 pip install threadpool 文档 http://gashero.yeax.com/?p=44 http://www.chrisarndt.de/projects/threadpool/ 测试 使用一个20个线程的线程池进行测试 import threadpool  import time,random  import Queue def hello1(str):      time.slee

c#:ThreadPool实现并行分析,并实现线程同步结束

背景: 一般情况下,经常会遇到一个单线程程序时执行对CPU,MEMORY,IO利用率上不来,且速度慢下问题:那么,怎么解决这些问题呢? 据我个人经验来说有以下两种方式: 1.并行.多线程(Parallel.Task.ThreadPool) 2.多进程MutilpleProcess 恰好工作中又一次遇到单线程程序性能低的问题,本次我主要想尝试使用ThreadPool来实现多线程,并且在实现多线程任务同步结束. 测试代码: 1 static void Main(string[] args) 2 {

ThreadPool.QueueUserWorkItem引发的血案,线程池异步非正确姿势导致程序闪退的问题

ThreadPool是.net System.Threading命名空间下的线程池对象.使用QueueUserWorkItem实现对异步委托的先进先出有序的回调.如果在回调的方法里面发生异常则应用程序会出现闪退.当然是指不处理那个异常的情况下.这不公司的CMS在生产环境频频出现闪退的情况.该死的是,原来用老机器配置不高的情况下没有出现过.换了更好的新机器后出现的. // // 摘要: // 将方法排入队列以便执行,并指定包含该方法所用数据的对象.此方法在有线程池线程变得可用时执行. // //

boost之ThreadPool

boost之ThreadPool 版权声明:本文为博主原创文章,未经博主允许不得转载. threadpool是基于boost库实现的一个线程池子库,但线程池实现起来不是很复杂.我们从threadpool中又能学到什么东西呢? 它是基于boost库实现的,如果大家对boost库有兴趣,看看一个简单的实现还是可以学到点东西的. threadpool基本功能 1.任务封装,包括普通任务(task_func)和优先级任务(prio_task_func). 2.调度策略,包括fifo_scheduler(

【python】Threadpool线程池任务终止简单示例

需求 加入我们需要处理一串个位数(0~9),奇数时需要循环打印它:偶数则等待对应时长并完成所有任务:0则是错误,但不需要终止任务,可以自定义一些处理. 关键点 定义func函数处理需求 callback处理返回结果,只有偶数和0返回:奇数会一直执行:要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理. threadpool定义线程池并发 实现 # -*- coding: utf-8 -*-from threadpool import makeRequests, ThreadPooli

C#多线程学习 之 线程池[ThreadPool](转)

在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPool(线程池)来解决: 另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒                   这一般使用Timer(定时器)来解决: 本篇文章单单讲线程池[ThreadPool] ThreadPool类 MSDN帮助信息: http://msdn.microsoft.com/z

线程(Thread,ThreadPool)、Task、Parallel

线程(Thread.ThreadPool) 线程的定义我想大家都有所了解,这里我就不再复述了.我这里主要介绍.NET Framework中的线程(Thread.ThreadPool). .NET Framework中的线程分为两类:1.前台线程:2.后台线程. 1.前台线程 class Program { static void Main(string[] args) { Console.WriteLine("=====Thread====="); TestThread(); Cons

MySQL数据迁移到MSSQL-以小米数据库为例-测试828W最快可达到2分11秒

这里采用.NET Framework 4.0以上版本中新出现的 ConcurrentQueue<T> 类 MSDN是这样描述的: ConcurrentQueue<T> 类是一个线程安全的先进先出 (FIFO) 集合. ConcurrentQueue<T> 的所有公共且受保护的成员都是线程安全的,可从多个线程同时使用. 共采用两个线程,一个读一个写. ConcurrentQueue<T>的实现方法: (FIFO) 集合: ConcurrentQueue<

ThreadPool has stuck threads

weblogic 10后台出现警告,原因:ThreadPool has stuck threads 在WEBLOGIC中如果一个线程执行时间超过了Stuck Thread Max Time规定的时间, WEBLOGIC会把它认为是STUCK线程,并记录在日志中. 我们也可以通过'Dump Thread Stacks' 来捕获STUCK状态的进程. Home > Summary of Servers > AdminServer>Monitoring>Performance>'D