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

一,首先重写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

Python多线程获取返回值的更多相关文章

  1. python通过多线程并获取返回值

    以下是多线程获取返回值的一种实现方式 # -*-coding:utf-8-*- from time import ctime, sleep import threading import numpy ...

  2. [Python陷阱]os.system调用shell脚本获取返回值

    当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bashexit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.sy ...

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

    python执行系统命令后获取返回值的几种方式集合 今天小编就为大家分享一篇python执行系统命令后获取返回值的几种方式集合,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 第一种情 ...

  4. python执行系统命令后获取返回值

    import os, subprocess # os.system('dir') #执行系统命令,没有获取返回值,windows下中文乱码 # result = os.popen('dir') #执行 ...

  5. python os.system()返回值判断

    最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值 ...

  6. Java多线程带返回值的Callable接口

    Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两 ...

  7. Java--FutureTask原理与使用(FutureTask可以被Thread执行,可以被线程池submit方法执行,并且可以监控线程与获取返回值)

    package com; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; i ...

  8. 工作随笔——Java调用Groovy类的方法、传递参数和获取返回值

    接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码 ...

  9. iframe无刷新跨域上传文件并获取返回值

    通常我们会有一个统一的上传接口,这个接口会被其他的服务调用.如果出现不同域,还需要无刷新上传文件,并且获取返回值,这就有点麻烦了.比如,新浪微博启用了新域名www.weibo.com,但接口还是使用原 ...

随机推荐

  1. 【mysql】排序方操作50题练习及其答案

    1.创建数据库.相关表,并插入数据create database homework;use homework; create table class_grade(gid int primary key ...

  2. Spring学习----- Spring配置文件xml文档的schema约束

    1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...

  3. 使用efwplusScript开发Winform程序【像小程序那样开发PC软件】

    一.前言 本人从事多年医疗管理软件的开发,在医院大多数的软件都还是CS程序,BS程序很少,对于使用者来说CS的操作体验确实比BS的要好. 1.CS的缺点就是升级麻烦,每次有新版本都需要所有客户端操作升 ...

  4. 12只超酷机器人,在家用3D打印搞定!

    3D打印最吸引人的地方在于它完全无极限!现在的3D打印已经广范应用在我们的生活.以及工业上的各个领域.最棒的是,DIY玩家可以真正从中受益.我们现在已经可以应用3D打印,在家制作自己的机器人了.如果你 ...

  5. Fiddler 抓包https配置 提示:creation of the root certificate was not successful 证书安装不成功

    window7 提示:creation of the root certificate was not successful 证书安装不成功 1.cmd 命令行   找到fiddler的安装目录  如 ...

  6. Android Studio —— java.lang.VerifyError: Verifier rejected class 问题解决

    用as开发过程中遇见问题app闪退  log如下图: 解决: File—Settings: 点击Apply—OK重新运行即可

  7. Python学习之路:NumPy初识

    import numpy as np; //一维NumPy数组 myArray = np.array([1,2,3,4]); print(myArray); [1 2 3 4] //打印一维数组的形状 ...

  8. Educational Codeforces Round 61 (Rated for Div. 2) E. Knapsack

    非常经典的dp题,因为1至8的最大公约数是840,任何一个数的和中840的倍数都是可以放在一起算的, 所以我只需要统计840*8的值(每个数字(1-8)的sum%840的总和),剩下都是840的倍数 ...

  9. mysql的安装教程-【linux】

    先卸载系统自带的mysql,停止mysql:service mysql stop 1.查找以前是否装有mysql命令:rpm -qa|grep -i mysql可以看到mysql的几个包:qt-mys ...

  10. linux上网络问题

    一.网络连接失败,不能访问 1.现象描述 network 服务不能启动, ping不通, Device not managed by NetworkManager or unavailable 2.n ...