栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python多线程学习-多线程下载图片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python多线程学习-多线程下载图片

目录
  • 开发工具
  • 知识点
  • 代码
  • 总结

开发工具
  1. python版本: python-3.8.1-amd64
  2. python开发工具: JetBrains PyCharm 2018.3.6 x64
知识点

多线程
网络编程

代码
# coding = utf-8
import threading
import time
import urllib.request

# 线程停止变量
isrunning = True


# 工作线程体函数
def workthread_body():
    while isrunning:
        # 线程开始工作
        print('工作线程执行下载任务...')
        # 下载任务每5秒调用一次
        download()
        # 线程休眠
        time.sleep(5)
    print('工作线程执行完成!')


# 控制线程体函数
def controlthread_body():
    global isrunning
    while isrunning:
        # 从键盘输入停止指令exit
        command = input("请输入停止指令: ")
        if command == 'exit':
            isrunning = False
            print('控制线程结束')


def download():
    # 地址可以换成任意一个网络图片地址
    url = 'https://gimg2.baidu.com/image_search/src=https://www.mshxw.com/skin/sinaskin/image/nopic.gif'
    req = urllib.request.Request(url)
    with urllib.request.urlopen(url) as response:
        data = response.read()
        f_name = 'download.png'
        with open(f_name, 'wb') as f:
            f.write(data)
            print('下载文件成功')
    pass


# 主线程
# 创建工作线程对象workthread
workthread = threading.Thread(target=workthread_body)
# 启动线程workthread
workthread.start()

# 创建工作线程对象controlthread
controlthread = threading.Thread(target=controlthread_body)
# 启动线程controlthread
controlthread.start()

总结

多线程中,可以利用两个线程控制一个全局变量,实现一个线程对另一个线程的停止

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648536.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号