当long函数耗时较长时,需要程序先向下执行,这就需要异步,改写代码如下:

import _thread

import time

def long(cb):

print ('long execute')

def fun(callback):

time.sleep(5)

result = 'long end'

callback(result)

_thread.start_new_thread(fun,(cb,))

def on_long_finsh(result):

print (result)

def first():

print ('first execute')

long(on_long_finsh)

print ('fisrt end')

def second():

print ('second execute')

time.sleep(2)

print ('second end')

def main():

first()

second()

if __name__=='__main__':

main()

回调函数作为参数传递给耗时较长的代码所在的函数,在新线程执行耗时较长的代码,执行完之后把数据传递给回调函数,再进行处理。

python异步_Python通过Thread实现异步相关推荐

  1. smtplib python教程_Python基于smtplib实现异步发送邮件服务

    基于smtplib包制作而成,但在实践中发现一个不知道算不算是smtplib留的一个坑,在网络断开的情况下发送邮件时会抛出一个socket.gaierror的异常,但是smtplib中并没有捕获这个异 ...

  2. python celery异步_python项目_使用异步功能,celery

    # 主程序 from celery import Celery # 创建celery实例对象 app = Celery("luffy") # 如果想要在celery中执行djang ...

  3. python同步异步_python中Tornado的同步与异步I/O的介绍(附示例)

    本篇文章给大家带来的内容是关于python中Tornado的同步与异步I/O的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 协程是Tornado种推荐的编程方式,使用 ...

  4. python mongodb 异步_Python异步读写Mongodb(motor+asyncio)

    使用Python做大型计算任务时,并且用mongodb做数据储存时,常常面临大量读写数据库的情况.尤其是大量更新任务,由于不能批量操作,使用pymongo同步操作的话,相当耗时. 使用多线程.多进程确 ...

  5. Python 彻底解读协程与异步【看完包会】

    title: Python 协程与异步 copyright: true top: 0 date: 2018-08-11 10:15:50 tags: categories: Python进阶笔记 pe ...

  6. python异步框架twisted_twisted是python实现的基于事件驱动的异步网络通信构架。

    网:https://twistedmatrix.com/trac/ http://www.cnblogs.com/wy-wangyan/p/5252271.html What is Twisted? ...

  7. python sanic_如何使用Python和Sanic使代码快速异步

    python sanic by Davit Tovmasyan 由Davit Tovmasyan 如何使用Python和Sanic使代码快速异步 (How to make your code fast ...

  8. Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)

    文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...

  9. 异步解耦_如何使用异步生成器解耦业务逻辑

    异步解耦 Async generators are new in JavaScript. They are a remarkable extension. They provide a simple ...

最新文章

  1. Java工具类-转换字符编码
  2. Linq to SQL Like Operator(转)
  3. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 二 )
  4. 移动磁盘格式化了,要如何寻回数据
  5. android 8.0 移除静态注册广播
  6. centos7下端口映射
  7. c语言编写服务器的优点,用C语言编写的服务器中记录效率最高的文件是什么?...
  8. jedis 读写分离_redis读写分离时jedis怎么知道访问主服务器或者从服务器?
  9. css里calculate,css3 calc会计算的属性
  10. linux脚本等待10s,bash – 按Enter键或等待10秒钟以继续
  11. 谁说前端工程师不能成为全栈?
  12. 通过css3制作熊在冰川奔跑效果(animation、精灵图)
  13. js高级学习笔记(b站尚硅谷)-6-IIFE
  14. informix安装教程以及创建一个实例(详细)(系列1,informix安装篇)
  15. 英语练习95 Computers
  16. 清理注册表 php,怎样清理注册表?
  17. 键盘输入 kbhit()
  18. JavaScript基础知识快速预览
  19. 互联网+背景下给旅行社的重大挑战
  20. 推荐系统-概述:基本架构

热门文章

  1. HTML5事件—visibilitychange 页面可见性改变事件
  2. Ubuntu apt-get 更新/查看软件
  3. Print! Print! Print!
  4. The C Programming Language--可变参数的函数
  5. 校验值的计算----移位算法
  6. 科讯SQL标签调用文章技巧
  7. 使用javascript打开模态对话框
  8. 解决vue打包后静态资源路径错误的问题
  9. HTTP --- HTTP2小结
  10. 操作系统 --- 进程和管程的不同