首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python多线程并行执行两个函数,并获取线程返回结果

参考链接: 在Python中返回多个值 本人使用场景是,获取用户数据,然后插入到库中,并返回查询该用户的相关结果,实际上包含两个操作:  1.插入  无返回值 2.查询,有返回值。...这两个操作没有依赖关系,就是不插入也可以返回查询结果,为什么选择并行,是因为插入操作耗时,如果是串行计算会影响查询返回时间。 ...实现demo如下,使用Python3实现:  # -*- coding: utf-8 -*- """ @author: JiaWei Tian """ # thread_test  2019/3/6 8...__name__)     t1 = threading.Thread(target=one)  # 建立一个线程并且赋给t1,这个线程指定调用方法one,并且不带参数     threads.append...(t)  # 把t1线程装到threads线程池里     # t2 = threading.Thread(target=two, args=(a,))     threads.append(t1)

2.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 3 多线程

    什么是线程 ---- 线程是操作系统能够进行运算调度的最小单位 包含在进程中,是进程中的实际运算单位 一个进程中可以并发多个线程,每个线程可执行不同任务 多线程类似于同时执行多个不同程序 优点一:时间长任务放到后台处理...优点二:程序运行速度可能加快 Python 实现多线程 ---- Python提供thread与threading模块 threading比thread模块高级 把一个函数传入并创建Thread实例...线程池运用 ---- 线程与进程一样可通过线程池来管理多线程 ThreadPoolExecutor实现线程池 from concurrent.futures import ThreadPoolExecutor...#定义多线程执行函数 def test(name,i): print('线程'+name+'执行:',i) #创建多个线程 thre_name = [] #定义线程池变量 th_pool...CPU内核 CPU密集型操作时不推荐使用多线程,建议使用多进程 IO密集型操作,多线程可明显提高效率 多线程与‘爬虫’可完美结合

    46820

    OptaPlanner终于支持多线程并行运行 - Multithreaded solving

    OptaPlanner 7.9.0.Final之前,启动引擎开始对一个Problem进行规划的时候,只能单线程进行的。...也就是说,当引擎对每一个possible solution进行分数计算的过程中,细化到每个步骤(Caculation),都只能排队在同一个线程中依次计算,不管你的问题是否存在并行计算的可能。...很显然这种运算方式应用于一些可并行计划的场景下,是相当不利的。...就算是一些在业务逻辑上无法实现并行运算的情况,在引擎自行调用指定的算法进行寻优时,若可以将每个Step,甚至每个Move的运行操作,适当地分配到不同的线程中执行,那么在多核CPU的环境下,无疑能大大提升规划运算性能...此功能只需要在配置文档中指定对应的并行线程数(可指定数量,也可由系统自行决定线程数),在规划运算过程中,每一个Step中的各个Move即有可能被分配于不同的线程进行计算。

    1.2K30

    python 多线程 条件condition(并行编程 6)

    __init__(self) def run(self): # 锁定线程 global num con.acquire() while True: print...可以认为,除了Lock带有的锁定池外,Condition还包含一个等待池,池中的线程处于状态图中的等待阻塞状态,直到另一个线程调用notify()/notifyAll()通知;得到通知后线程进入锁定池等待锁定...Condition(): acquire(): 线程锁 release(): 释放锁 wait(timeout): 线程挂起,直到收到一个notify通知或者超时(可选的,浮点数,单位是秒s)才会被唤醒继续运行...notify(n=1): 通知其他线程,那些挂起的线程接到这个通知之后会开始运行,默认是通知一个正等待该condition的线程,最多则唤醒n个等待的线程。...notifyAll(): 如果wait状态线程比较多,notifyAll的作用就是通知所有线程

    43140

    从伪并行的 Python 多线程说起

    但由于仅有一个运算单元,当线程皆执行计算密集型任务时,多线程可能会出现 1 + 1 > 2 的反效果。 而“真正的并行”只能在多核架构上实现。...对于计算密集型任务,巧妙地使用多线程或多进程将其分配至多个 CPU 上,通常可以成倍地缩短运算时间。 作为一门优秀的语言,python 为我们提供了操纵线程的库 threading。...由此可见,GIL 确实是造成伪并行现象的主要因素。 如何解决? GIL 是 Python 解释器正确运行的保证,Python 语言本身没有提供任何机制访问它。...python 多线程写爬虫时可从来没有这种问题啊——用 4 个线程下载 4 个页面的时间与单线程下载一个页面的时间相差无几。...多个阻塞 IO 需要多条非抢占式的控制流来承载,这些工作交给线程再合适不过了。 小结 由于 GIL 的存在,大多数情况下 Python 多线程无法利用多核优势。

    1.3K10

    Python3多线程

    在网上看了python多线程的教程,但是基本都不讲为什么要这么写,而且写的东西太多def了,看的就很乱,思考了几秒钟决定自己写上一篇,不喜勿喷 ?...开始正题 按照惯例一般都会先上个代码,照着代码来讲,所以我今天就不按照惯例来,毕竟距离2019也没几天了,我要用这种方法小抗议一下 那么何为多线程呢,多线程,英文 multithreading,指的是从软件或者硬件上实现多个线程并发执行的技术...翻译成人话就是,可以通过软件或者硬件上,实现同时干几件事情 那么为什么今天要说Python的多线程呢 因为其他的我不会 下面说一下咋整 首先,写好步骤,我这里省时间,就随便弄个print就完事了...#开启线程 for t in threads: t.start() print('Done') 运行完后,输出一个Done庆祝一下 到了这一步,你能理解完,那么恭喜你,浪费了人生宝贵的几十分钟...,因为我都不知道多线程到底有啥用,它同时做的我不同的写法也能写出来

    30210

    Python3 多线程

    两个概念: 并发:假同时,一段时间内同时处理多个任务,单核都可以; 并行:真同时,同时处理多个任务,必须多核。 主流操作系统上完成并发的手段有进程和线程,主流的编程语言提供了用户空间的调度:协程。...: thread = threading.current_thread() 它有很多属性和方法: name:返回线程的名字; ident:返回该线程的唯一标识符; is_alive:告知该线程是否存活.../lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/usr/local/python3.../usr/local/python3/bin/python3 import queue import random import logging import threading logging.basicConfig...正是由于它的存在,在操作内置容器时,解释器会在解释器级别增加一个锁,因此 Python 所有内置容器(字典、列表等)都是线程安全的,多线程环境下使用没有丝毫问题。

    83710
    领券