Python多线程获取返回值代码实例

这篇文章主要介绍了Python多线程获取返回值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在使用多线程的时候难免想要获取其操作完的返回值进行其他操作,下面的方法以作参考:

一,首先重写threading类,使其满足调用特定的方法获取其返回值

import threading
class MyThread(threading.Thread):
  """重写多线程,使其能够返回值"""
  def __init__(self, target=None, args=()):
    super(MyThread, self).__init__()
    self.func = target
    self.args = args

  def run(self):
    self.result = self.func(*self.args)

  def get_result(self):
    try:
      return self.result # 如果子线程不使用join方法,此处可能会报没有self.result的错误
    except Exception:
      return None

二,调用get_result()方法,最终列表retval就是多线程返回值的集合:

def parse_detail_page(self,items_list):
  retval, RetList, _Threads = [], [], []
  for url in items_list:
    t = MyThread(target=self.threadItem, args=(url,))
    t.start()
    _Threads.append(t)
  for t in _Threads:
    t.join()
    retval.append(t.get_result())
def threadItem(self,url):
  """多线程请求"""
 response = requests.get(url)
  return response.text

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python支持多线程的爬虫实例

    python是支持多线程的, 主要是通过thread和threading这两个模块来实现的,本文主要给大家分享python实现多线程网页爬虫 一般来说,使用线程有两种模式, 一种是创建线程要执行的函数, 把这个函数传递进Thread对象里,让它来执行. 另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的class里. 实现多线程网页爬虫,采用了多线程和锁机制,实现了广度优先算法的网页爬虫. 先给大家简单介绍下我的实现思路: 对于一个网络爬虫,如果要按广度遍历的方

  • python 实现多线程下载m3u8格式视频并使用fmmpeg合并

    电影之类的长视频好像都用m3u8格式了,这就导致了多线程下载视频的意义不是很大,都是短视频,线不线程就没什么意义了嘛. 我们知道,m3u8的链接会下载一个文档,相当长,半小时的视频,应该有接近千行ts链接. 这些ts链接下载成ts文件,就是碎片化的视频,加以合并,就成了需要的视频. 那,即便网速很快,下几千行视频,效率也就低了,更何况还要合并.我就琢磨了一下午,怎么样才能多线程下载m3u8格式的视频呢? 先上代码,再说重难点: import datetime import os import r

  • python实现自动化报表功能(Oracle/plsql/Excel/多线程)

    日常会有很多固定报表需要手动更新,本文将利用python实现多线程运行oracle代码,并利用xlwings包和numpy包将结果写入到指定excel模版(不改变模版内容),并自动生成带日期命名的新excel.此外还添加了logging模块记录运行日志,以及利用try-except实现遇到错误自动重新运行.下面将介绍整个自动化的实现过程. # -*- coding: utf-8 -*- # Create time: 2019-10-16 # Update time: 2019-11-28 # V

  • linux 下python多线程递归复制文件夹及文件夹中的文件

    本文是利用python 复制文件夹 刚开始写了一个普通的递归复制文件夹    然后想了想 觉得对io频繁的程序 threading 线程还比较友好  就写了个多线程版本的  最恶心人的地方就是路径  其他都还好吧 import os import threading import multiprocessing length_of_folder = 0 def copyfile(Path): if os.path.isdir(Path): print("-----------%s" %

  • python kafka 多线程消费者&手动提交实例

    官方文档:https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html import threading import os import sys from kafka import KafkaConsumer, TopicPartition, OffsetAndMetadata from consumers.db_util import * from consumers.json_dispose import *

  • python多线程使用方法实例详解

    本文实例讲述了python多线程使用方法.分享给大家供大家参考,具体如下: threading 模块支持守护线程, 其工作方式是:守护线程一般是一个等待客户端请求服务的服务器. 如果把一个线程设置为守护线程,进程退出时不需要等待这个线程执行完成. 如果主线程准备退出时,不需要等待某些子线程完成,就可以为这些子线程设置守护线程标记. 需要在启动线程之前执行如下赋值语句: thread.daemon = True,检查线程的守护状态也只需要检查这个值即可. 整个 Python 程序将在所有非守护线程

  • python多线程实现代码(模拟银行服务操作流程)

    1.模拟银行服务完成程序代码 目前,在以银行营业大厅为代表的窗口行业中大量使用排队(叫号)系统,该系统完全模拟了人群排队全过程,通过取票进队.排队等待.叫号服务等功能,代替了人们站队的辛苦. 排队叫号软件的具体操作流程为: 顾客取服务序号 当顾客抵达服务大厅时,前往放置在入口处旁的取号机,并按一下其上的相应服务按钮,取号机会自动打印出一张服务单.单上显示服务号及该服务号前面正在等待服务的人数. 服务员工呼叫顾客 服务员工只需按一下其柜台上呼叫器的相应按钮,则顾客的服务号就会按顺序的显示在显示屏上

  • python利用JMeter测试Tornado的多线程

    JMeter的简介   JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库.FTP 服务器, 等等.   JMeter的下载网址为:https://jmeter.apache.org/download_jmeter.cgi,下载前请先确定电脑中安装了Java,下载完毕后点击bin文件夹下的"meter

  • Python利用多线程同步锁实现多窗口订票系统(推荐)

    利用Python实现多窗口订票系统,利用 threading.Lock() 避免出现一票多卖,无票也卖的情况,并规范化输出情况. 代码: import threading import time tickets, lock = 20, threading.Lock() class TicketWindows(threading.Thread): def __init__(self, window_name): threading.Thread.__init__(self) self.window

  • Python多线程获取返回值代码实例

    这篇文章主要介绍了Python多线程获取返回值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用多线程的时候难免想要获取其操作完的返回值进行其他操作,下面的方法以作参考: 一,首先重写threading类,使其满足调用特定的方法获取其返回值 import threading class MyThread(threading.Thread): """重写多线程,使其能够返回值""" d

  • Python get获取页面cookie代码实例

    在Python中通过GET来获取页面的COOKIE是非常简单的事情,下面的代码实例演示了如何利用Python 获取COOKIE内容 #! /usr/bin/env python #coding=utf-8 # -*-coding:utf-8 -*- #encoding=utf-8 import urllib import urllib2 import httplib cj='' header={'Host':'218.94.26.135', 'Accept-Language':'zh-CN',

  • C++多线程获取返回值方法详解

    在许多时候,我们会有这样的需求--即我们想要得到线程返回的值.但是在C++11 多线程中我们注意到,std::thread对象会忽略顶层函数的返回值. 那问题来了,我们要怎么获得线程的返回值呢? 我们通过一个例子来说明如何实现这个需求.用多个线程计算(a+b)/ (x+y) 的值 有两种方法,分别是 1. 传统的方法:在线程间共享指针 #include<iostream> #include<thread> #include<mutex> #include<atom

  • python在回调函数中获取返回值的方法

    python中有用到回调函数的时候,而回调函数又需要返回数值的时候,就需要先将所被传为回调函数的函数先赋值给一个变量,然后等回调结束之后,将这个变量取值回来就可以了. 如我用到到的调用xmlreader时,传入的一个函数需要取回返回值的代码: # 创建一个 XMLReader parser = xml.sax.make_parser() # turn off namepsaces parser.setFeature(xml.sax.handler.feature_namespaces, 0) #

  • Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

    本文实例讲述了Python函数的返回值.匿名函数lambda.filter函数.map函数.reduce函数用法.分享给大家供大家参考,具体如下: 函数的返回值: 函数一旦执行到   return,函数就会结束,并会返回return 后面的值,如果不使用显式使用return返回,会默认返回None . return None可以简写为   return. def my_add(x,y): z=x+y return z print(my_add(1,2))##打印的是返回值 def my_add_

  • python执行系统命令后获取返回值的几种方式集合

    第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for line in res.splitlines(): print line 执行系统命令,可以获取执行系统命令的结果 p = subprocess.Popen('ps aux',shell=True,stdout=subprocess.PIPE) out,err = p.communicate() for

  • 解决python 执行shell命令无法获取返回值的问题

    问题背景:利用python获取服务器中supervisor状态信息时发现未能获取到返回值. python获取执行shell命令后返回值得几种方式: # 1.os模块 ret = os.popen("supervisorctl status") ret_data = ret.read() # 2.subprocess模块 ret = subprocess.Popen('supervisorctl status',shell=True,stdout=subprocess.PIPE) out

  • Python多线程threading和multiprocessing模块实例解析

    本文研究的主要是Python多线程threading和multiprocessing模块的相关内容,具体介绍如下. 线程是一个进程的实体,是由表示程序运行状态的寄存器(如程序计数器.栈指针)以及堆栈组成,它是比进程更小的单位. 线程是程序中的一个执行流.一个执行流是由CPU运行程序代码并操作程序的数据所形成的.因此,线程被认为是以CPU为主体的行为. 线程不包含进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态.所以,系统在产生一个线程或各个线程之间切换时,负担要比进程小得多. 线程是一

  • JS中实现函数return多个返回值的实例

    近期开始着手web前端的工作,主要用到JS.html5+css.以及JS框架(jQuery.dojo等等),在学习和写代码的过程中有一些小经验跟大家一起交流与学习. 今天主要针对"JS实现函数return多个返回值"的方法. 1.函数的基本方法如下: functionA(fp1,fp2,fp3){ ....... return {a1:a,b1:b,c1:c}; //将得到的值a,b,c,封装在一个字段分别有a1,b1,c1的对象中 } 2.调用函数: 调用functionA(fp1,

  • python 图像处理画一个正弦函数代码实例

    这篇文章主要介绍了python 图像处理画一个正弦函数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import numpy as np from PIL import Image import matplotlib.pyplot as plt import math size = 300 new_im = Image.new("RGBA",(size,size)) #创建一个空的图片 a_img = np.array(ne

随机推荐