Python----利用Threading和Queue实现多线程

2023-11-20

用来学习Threading、Queue的组合使用,实现多线程编程。

实现功能

利用 ping 来检测主机是否存活。

代码如下:

# _*_coding:utf-8_*_
from IPy import IP
from subprocess import Popen, PIPE
from Queue import Queue
import threading,sys

class ping_check(threading.Thread):
    def __init__(self,queue):
        threading.Thread.__init__(self)
        self._queue = queue
    def run(self):
        while not self._queue.empty():
            ip = self._queue.get_nowait()
            try:
                check = Popen(['ping', ip], stdin=PIPE, stdout=PIPE)
                data = check.stdout.read()
                if 'TTL' in data:
                    sys.stdout.write('%s is live!' % ip + '\n')
                else:
                    pass
            except Exception,e:
                pass
#将C段IP地址:127.0.0.1/24 转换为单个IP
def ip_create(ips):
    queue = Queue()
    ip = IP(ips, make_net=True)
    for i in ip:
        i = str(i)
        queue.put(i)
    return queue
def main(ips):
    queue = ip_create(ips)
    threads = []
    thread_count = 20
    for i in range(thread_count):
        threads.append(ping_check(queue))
    for t in threads:
        t.start()
    for t in threads:
        t.join()
if __name__ == '__main__':
    if len(sys.argv) == 2:
        main(sys.argv[1])
    else:
        print "use:%s 127.0.0.1/24"%sys.argv[0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python----利用Threading和Queue实现多线程 的相关文章

  • 在 Python 中对数据进行求和

    Given that the fitting function is of type 我打算将这样的函数拟合到我拥有的实验数据 x y f x 中 但后来我有一些疑问 当涉及求和时 如何定义拟合函数 一旦定义了函数 即def func re
  • 创建一个打开文件并创建字典的函数

    我有一个正在处理的文件 我想创建一个读取文件并将内容放入字典中的函数 然后该字典需要通过 main 函数传递 这是主程序 它无法改变 我所做的一切都必须与主程序配合 def main sunspot dict file str raw in
  • 在 Python 3 中动态导入模块的问题

    我遇到的情况是 在我的 Python 3 项目中 在运行时必须包含某些模块 我在用着importlib import module为了这 第二次更新 我确实找到了一种方法来做一些接近我想要的事情 一些额外的代码可能会使我的一些链接稍微偏离一
  • 有条件填写 pandas 数据框

    我有一个数据框df列中包含浮点值A 我想添加另一列B这样 B 0 A 0 for i gt 0 B i if np isnan A i then A i else Step3 B i if abs B i 1 A i B i 1 lt 0
  • Python 使用 M2Crypto 通过 S/MIME 对消息进行签名

    我现在花了几个小时 但找不到我的错误 我想要一个简单的例程来创建 S MIME 签名消息 稍后可以与 smtplib 一起使用 这是我到目前为止所拥有的 usr bin python2 7 coding utf 8 from future
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • Selenium Webdriver - Python - leboncoin - pb 选择带重音的按钮

    我正在尝试在以下网站上自动填写表格 https www leboncoin fr https www leboncoin fr 我用 Selenium IDE 录制了一个脚本 我有一个通过单击 Se 连接器 按钮并填写我的密码和用户名来自动
  • Pandas Pivot_Table :非数字值的行计算百分比

    这是我在数据框 df 中的数据 Document Name Time SPS2315511 A 1 HOUR SPS2315512 B 1 2 HOUR SPS2315513 C 2 3 HOUR SPS2315514 C 1 HOUR S
  • Selenium:等到 WebElement 中的文本发生变化

    我在用着selenium使用Python 2 7 从网页上的搜索框检索内容 搜索框动态检索结果并在框本身中显示结果 from selenium import webdriver from selenium webdriver common
  • 如何使用 python 操作系统更改驱动器?

    我正在尝试更改当前目录C to Y 我试过 import os os chdir Y 但我不断收到错误消息 提示无法找到驱动器 本质上我正在寻找相当于 cd d cmd 中的命令 你确定吗Y 确实是有效的驱动器号吗 Try os chdir
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 为 Python 2.4 改进“with”语句的直接替换

    您能否建议一种方法来编写可在 Python 2 4 中使用的 with 语句的直接替换代码 这将是一个 hack 但它可以让我更好地将我的项目移植到 Python 2 4 EDIT 删除了不相关的元类草图 只需使用 try finally
  • 向量化 numpy bincount

    我有一个 2d numpy 数组 A我要申请np bincount 到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A 我的问题是 np bincount 是一个采用一维数组的函数 它不是像这样的数组方法B A
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 网页抓取 - 如何识别网页上的主要内容

    给定一个新闻文章网页 来自任何主要新闻来源 例如时报或彭博社 我想识别该页面上的主要文章内容 并丢弃其他杂项元素 例如广告 菜单 侧边栏 用户评论 在大多数主要新闻网站上都可以使用的通用方法是什么 有哪些好的数据挖掘工具或库 最好是基于Py
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • 从 Python 中编译的正则表达式中提取命名组正则表达式模式

    我有一个 Python 正则表达式 其中包含多个命名组 但是 如果先前的组已匹配 则可能会错过与一组匹配的模式 因为似乎不允许重叠 举个例子 import re myText sgasgAAAaoasgosaegnsBBBausgisego
  • Jupyter Notebook 中的多处理与线程

    我试图测试这个例子here https ipywidgets readthedocs io en stable examples Widget 20Asynchronous html将其从线程更改为多处理 在 jupyter Noteboo
  • python中匹配3个或更多相同的字符

    我正在尝试使用正则表达式在字符串中查找三个或更多相同的字符 例如 你好 不匹配 噢 会的 我尝试过做类似的事情 re compile 1 3 a zA Z re compile w 1 5 但似乎都不起作用 w 1 2 是您正在寻找的正则表

随机推荐

  • React 教程及其API接口文档

    React 详细中文开发文档 可以阅读 http reactjs cn react docs tutorial html 英文原文 http facebook github io react 中文论坛 http react china or
  • mmdetection No module named 'imagecorruptions'

    报错原因 imagecorruptions cpp文件需要重新编译 解决方案 mmdetection 目录下运行 python setup py develop
  • 权重计算方法_终身持续学习-可塑权重巩固(Elastic Weight Consolidation)

    回过头来梳理了一下EWC方法 在持续终身学习里面很经典的一个方法 Deepmind写的晦涩难懂x 当时折腾了好久才理解 因为自己有点菜 条件和目标 论文中 假设存在两个任务A和B 可以推广为旧任务和新任务 数据集分别为D和D 模型学习完任务
  • 2021-07-01 RuoYi-Vue-Plus

    提示 https gitee com JavaLionLi RuoYi Vue Plus from gitee search 疯狂的狮子li icon https www iconfont cn 渐变色 http color oulu me
  • ASP.NET 中实现 读取数据库二进制 下载

    实现思路 首先从数据库中把二进制 写入到服务器上 生成临时文件 然后再从服务器上 进行下载 具体代码如下 string filename test jpg 这个就是要存放到服务器的文件名 Response ContentType appli
  • Jenkins自动化测试

    学习 Jenkins 自动化测试的系列文章 Robot Framework 概念 Robot Framework 安装 Pycharm Robot Framework 环境搭建 Robot Framework 介绍 Jenkins 自动化测
  • mariadb主从复制

    1 准备两台服务器 一台设置为master服务器 一台设置为slave服务器 两台服务器先关闭防火墙 关闭selinux systemctl stop firewalld setenforce 0 两台服务器都需要安装mariadb 这里用
  • google c++代码规范-中文翻译

    头文件 lt Header Files gt The define Guard 所有的头文件都应该使用 define等来防止头文件重复包含 宏的格式应该为
  • Python实现二叉搜索树的删除功能

    Python实现二叉搜索树的删除功能 二叉搜索树 二叉查找树 Binary Search Tree 又称为排序二叉树 有序二叉树 二叉搜索树的实现可以参考 https blog csdn net weixin 43790276 articl
  • 标准正态分布变量的积累概率分布函数C\C++

    BS模型中用到的CDF函数实现 找到两种常见的实现方式 实现一 include
  • 图像处理——我理解的傅里叶变换

    1 傅里叶变换的理解 傅里叶变换的相关数学公式目前还没有搞懂 先不整那个东西 我们主要是研究傅里叶变换的一些思想和应用 这个思想起源于牛顿研究那个三棱镜 白光透过棱镜之后会被分解为七种颜色的光 这些光叠加又能形成白光 所以说可以把一种事物分
  • selenium自动向下滚动页面,并指定最大滑动距离

    需要selenium控制的chrome向下滑动 自动加载一些内容 核心代码是 browser execute script window scrollBy 0 300 这行可以向下滑动300个像素 需要的工具函数如下 def roll wi
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • chatgpt赋能python:Python打包发布完整指南:从基础知识到实践操作

    Python打包发布完整指南 从基础知识到实践操作 作为一名有着十年python编程经验的工程师 我清楚地知道打包发布Python应用程序是非常重要的 它能帮助我们方便地分享和分发程序 并且能够让其他人通过使用我们的程序来提高自己的工作效率
  • 别人总结的一些git教程大全

    工作中 除了必备的基础知识 还要学会与人合作 如何将你开发的小功能整合到整个项目的大框架中 如何让你的实验性代码不影响到大框架中的代码性能 如何让你放下手中写到一半的代码去修改突然出现的bug 这些都是会出现的情况 为了应对这些情况 新入职
  • Qt QML多线程-WorkerScript的使用

    Qt QML多线程 WorkerScript的使用 在开发过程中 常常会遇到一些需要进行耗时计算的操作 如果这些操作都放在主线程中完成 就会导致UI界面被卡死 用户体验很不好 为了解决这个问题 我们可以将这些耗时计算操作放在一个单独的线程中
  • java综合(六)hibernate.current_session_context_class配置

    在前面一节 spring与Hibernate整合 事务 中 总是出现不存在激活事务的问题 结果去掉
  • 使用命令启动默认程序(例如启动系统默认浏览器打开指定网址)

    文章目录 目的 基础说明 代码示例 Golang 总结 目的 通过命令调用系统默认应用程序打开对应格式的文件是比较常用的功能 这篇文章将介绍下相关内容 基础说明 Windows windows下可以使用 start 指令来启动默认程序打开对
  • 数据结构——广度优先遍历(BFS)无向连通图

    以下是数据结构中关于广度优先遍历无向连通图的操作 编程风格参考严蔚敏版数据结构 其实深度优先遍历就是二叉树的层次遍历的推广 头文件及宏 include
  • Python----利用Threading和Queue实现多线程

    用来学习Threading Queue的组合使用 实现多线程编程 实现功能 利用 ping 来检测主机是否存活 代码如下 coding utf 8 from IPy import IP from subprocess import Pope