Asyncio中的Task管理

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import asyncio
import datetime
import time
from random import randint

@asyncio.coroutine
def factorial(number):
    f = 1
    for i in range(2, number+1):
        print("Asyncio.Task: Compute factorial(%s)" % (i))
        yield from asyncio.sleep(1)
        f *= i
    print("Asyncio.Task - factorial(%s) = %s" %(number, f))

@asyncio.coroutine
def fibonacci(number):
    a, b = 0, 1
    for i in range(number):
        print("Asyncio.Task: Compute fibonacci (%s)" % i)
        yield from asyncio.sleep(1)
        a, b = b, a + b
    print("Asyncio.Task - fibonacci(%s) = %s" % (number, a))

@asyncio.coroutine
def binomialCoeff(n, k):
    result = 1
    for i in range(1, k+1):
        result = result * (n-i+1) / i
        print("Asyncio.Task: Compute binomialCoeff (%s)" % (i))
        yield from asyncio.sleep(1)
    print("Asyncio.Task - binomialCoeff(%s , %s) = %s" % (n,k,result))

if __name__ == "__main__":
    tasks = [asyncio.Task(factorial(10)),
             asyncio.Task(fibonacci(10)),
             asyncio.Task(binomialCoeff(20, 10))]
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))
    loop.close()

时间: 2024-08-01 00:18:54

Asyncio中的Task管理的相关文章

SSIS中Sql Task 获取系统变量

原文:SSIS中Sql Task 获取系统变量 执行 SQL 任务使用不同的连接类型时,SQL 命令的语法使用不同的参数标记.例如,ADO.NET 连接管理器类型要求 SQL 命令使用格式为 @varParameter 的参数标记,而 OLE DB 连接类型要求使用问号 (?) 参数标记. 在变量与参数之间的映射中可以用作参数名的名称也因连接管理器类型而异.例如,ADO.NET 连接管理器类型使用带 @ 前缀的用户定义名称,而 OLE DB 连接管理器类型要求使用从 0 开始的序数数值作为参数名

Linux内核中的内存管理浅谈

 [十月往昔]--Linux内核中的内存管理浅谈 为什么要叫做"十月往昔"呢?是为了纪念我的原博客. 不知道为什么,突然想来一个新的开始--而那个博客存活至今刚好十个月,也有十个月里的文档. 十月往昔,总有一些觉得珍贵的,所以搬迁到这里来. 而这篇文章是在09.04.20-09.04.21里写的. Jason Lee   ------------–cut-line   1.基本框架(此处主要谈页式内存管理) 4G是一个比较敏感的字眼,早些日子,大多数机器(或者说操作系统)支持的内存上限

在linux中使用包管理器安装node.js

 这篇文章主要介绍了在linux中使用包管理器安装node.js的方法以及具体安装过程,非常详细,推荐给大家,有需要的小伙伴参考下吧.     网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法. 1. 在Ubuntu中,使用如下命令:   代码如下: curl -sL https://deb.nodesource.com/setup | sudo bash -

Windows Server 2012和Windows 8中的远程管理概述

说到对Windows Server 2012和Windows 8的远程管理,记得当我还是菜鸟的时候狭隘的理解为等同于对系统通过微软终端服务MSTSC实现的基于RDP协议的远程桌面管理,或者就是Microsoft 管理控制台MMC:当然实际上现在针对于Windows Server 2012环境的远程管理方法,可以简单的理解为通过服务器管理器实现对数据中心中的服务器实现1:1或1:多图形化管理,或通过Powershell实现远程自动化管理. 服务器管理器是个图形化的管理工具,该工具内置在Window

企业或将看中Windows 7中的电源管理

与Vista相比,除了界面和性能上的改进外,Windows 7中的电源管理也可以说是很重要的一个改进.Windows中的电源管理往往用于调节性能和节能之间的平衡,在笔记本上,也就意味着更长的电池寿命. 在Windows 7中,微软通过采取了一系列的措施来控制系统的能源使用.随着Windows系统的不断进步,电源管理也一直在前行.而作为企业考虑的一个重要方面,电源管理很有可能会为众多企业一个选择Windows 7和Windows Server 2008 R2的理由.其中2项核心技术就是组策略和CP

在ASP.NET 2.0中实现异常管理

介绍 在任何应用系统开发中,异常管理对开发人员来说都是一个关键领域.作为 一个开发人员,你应该采用一种合适的.能让你编写健壮且高质量代码的异常管 理策略.如果使用得当,异常管理将是一个很强大的概念而且使你的开发工作变 的很容易.然而,一个不合适的异常处理将会使你的应用系统性能降低. 在你钻研这些之前,要先搞清楚异常管理是什么,这点很重要.一般来说异 常就表示"打破系统预定的假设"."异常"和"错误"是不一样的,为了解释 清楚,我们来看两个例子:

解析PHP中的内存管理,PHP动态分配和释放内存

本篇文章是对PHP中的内存管理,PHP动态分配和释放内存进行了详细的分析介绍,需要的朋友参考下   摘要 内存管理对于长期运行的程序,例如服务器守护程序,是相当重要的影响:因此,理解PHP是如何分配与释放内存的对于创建这类程序极为重要.本文将重点探讨PHP的内存管理问题. 一. 内存在PHP中,填充一个字符串变量相当简单,这只需要一个语句"<?php $str = 'hello world '; ?>"即可,并且该字符串能够被自由地修改.拷贝和移动.而在C语言中,尽管你能够

XP系统在控制面板中添加&quot;密码管理&quot;

  XP系统在控制面板中添加"密码管理" 打开记事本,编辑如下内容,保存为xx.reg再导入注册表即可: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTCLSID{98641F47-8C25-4936-BEE4-C2CE1298969D}] @="密码管理" [HKEY_CLASSES_ROOTCLSID{98641F47-8C25-4936-BEE4-C2CE1298969D}DefaultIcon]

如何通过win8电脑中的凭据管理器查看网页账号密码?

  1.首先,咱们需要返回到win8电脑的传统桌面位置,之后,咱们按下键盘上的F3打开win8电脑的搜索窗口,之后,咱们直接在搜索窗口中输入凭证管理器然后单击回车. 2.在打开的窗口中,咱们找到"web凭据"并单击打开,这样就可以在其中看到自己曾经保存过的网址还有具体的账户密码信息了. 如果大家想要查看某个网站的账户密码信息的话,就直接单击该网址,之后会弹出一个需要输入密码的窗口,咱们输入密码,然后便可以删除或"显示"来查看账号了.         注:更多精彩教程