美文网首页Python进阶
Python模块·Threading线程

Python模块·Threading线程

作者: 技术老男孩 | 来源:发表于2023-01-07 09:27 被阅读0次

一、概念:

  • threadthreading模块允许程序员创建和管理线程
  • thread模块提供了基本的线程和锁的支持,而threading提供了更高级别、功能更强的线程管理功能
  • 推荐使用更高级别的threading模块
分类 关键字 / 函数 / 方法 说明
模块 import threading 导入模块
threading.Thread(target=func) 创建线程,返回线程对象
threading.Thread(target=func,agrs=iterable 创建线程,iterable可序列化,返回线程对象
对象 t=threading.Thread(target=func) 创建线程对象
t.start() 启动工作线程

二、使用示例:

  • target=传入的是方法名
  • args=传入函数所需要的参数,必须是序列化类型
import threading
import time
# 创建搬砖函数,带传参
def bz(count):
    print("start....", count)
    time.sleep(3)
    print("end....")
    time.sleep(3)

if __name__ == '__main__':
    for i in range(5):
        # 创建线程
        t = threading.Thread(target=bz, args=(i,))
       # 启动线程
        t.start()

三、多线程练习:

需求:

  • 通过 ping 测试主机是否可达
  • 如果 ping 不通,不管什么原因都认为主机不可用
  • 通过多线程方式实现并发扫描
import subprocess
import threading
# 函数
def ping(ip):
    sub = subprocess.run(f"ping -c 2 {ip} &> /dev/null", shell=True)
    print(ip, "up" if sub.returncode == 0 else "down")

if __name__ == '__main__':
    ip_list = ["127.0.0.1", "192.168.99.100", "192.168.88.10", "192.168.88.210",
               "192.168.88.100", "192.168.88.5", "192.168.88.15",
               "www.baidu.com", "www.yahu.com", "www.douyin.com",
               "www.qq.com", "www.163.com", "www.wangyi.com"]
    for ip in ip_list:
        t = threading.Thread(target=ping, args=(ip,))
        t.start()

四、补充:进程&进程的概念

  • 进程是争夺 CPU 资源的最小单位,线程是程序执行的最小单位
  • 线程的执行离不开进程的资源,进程的流转离不开线程的工作


    进程&进程.png

相关文章

  • 线程

    多线程--threading python的thread模块是比较底层的模块,python的threading模块...

  • 1.6.1 Python线程使用 -- threading

    多线程-threading python的thread模块是比较底层的模块,python的threading模块是...

  • 线程实战

    多线程-threading python的thread模块是比较底层的模块,python的threading模块是...

  • 06.系统编程-2.线程

    1、多线程-threading python的thread模块是比较底层的模块,python的threading模...

  • python进线程——多线程

    1. 线程模块threading中的Thread python的线程使用threading模块中的Thread类,...

  • 线程 threading

    1. 多线程-threading python的thread模块是比较底层的模块,python的threading...

  • Python 多线程 threading和multiproces

    Python 多线程 threading和multiprocessing模块 Python中常使用的线程模块 th...

  • python线程的一些知识

    python threading模块 重写threading.Thread来实现: 守护线程: 线程的生命周期: ...

  • Mr.Li--python-系统编程-线程

    线程 多线程--threading python的thread模块是比较底层的模块,python的threadin...

  • python多线程

    1.通过threading模块使用多线程 python中多线程的方式是引用threading模块 2.Thread...

网友评论

    本文标题:Python模块·Threading线程

    本文链接:https://www.haomeiwen.com/subject/jhrgqdtx.html