欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python中如何創(chuàng)建和運行異步任務

本篇內容主要講解“Python中如何創(chuàng)建和運行異步任務”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python中如何創(chuàng)建和運行異步任務”吧!

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供十堰企業(yè)網站建設,專注與成都做網站、網站設計、H5頁面制作、小程序制作等業(yè)務。10年已為十堰眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站設計公司優(yōu)惠進行中。

    1. 什么是異步任務

    異步任務是一個調度并獨立運行 asyncio 協(xié)程的對象。它提供了一個調度協(xié)程的句柄,asyncio 程序可以查詢并使用它來與協(xié)程交互。

    任務是從協(xié)程創(chuàng)建的。它需要一個協(xié)程對象,包裝協(xié)程,安排它執(zhí)行,并提供與之交互的方法。任務獨立執(zhí)行。這意味著它被安排在 asyncio 事件循環(huán)中,并且無論創(chuàng)建它的協(xié)程中發(fā)生了什么,它都會執(zhí)行。這與直接執(zhí)行協(xié)程不同,后者調用者必須等待它完成。

    asyncio.Task 類擴展了 asyncio.Future 類,一個實例是可等待的。Future 是一個較低級別的類,代表最終會到達的結果。擴展 Future 類的類通常被稱為 Future-like。

    因為異步任務是可等待的,這意味著協(xié)程可以使用 await 表達式等待任務完成。

    ...
    # wait for a task to be done
    await task

    現(xiàn)在我們知道什么是 asyncio 任務,讓我們看看如何創(chuàng)建一個。

    2. 如何創(chuàng)建任務

    使用提供的協(xié)程實例創(chuàng)建任務?;叵胍幌聟f(xié)程是使用 async def 表達式定義的,看起來像一個函數。

    # define a coroutine
    async def task_coroutine():
    	# ...

    任務只能在協(xié)程中創(chuàng)建和調度。創(chuàng)建和調度任務有兩種主要方式,它們是:

    • 使用高級 API 創(chuàng)建任務(首選)

    • 使用低級 API 創(chuàng)建任務

    2.1. 高級 API

    可以使用 asyncio.create_task() 函數創(chuàng)建任務。asyncio.create_task() 函數接受一個協(xié)程實例和一個可選的任務名稱,并返回一個 asyncio.Task 實例。

    ...
    # create a coroutine
    coro = task_coroutine()
    # create a task from a coroutine
    task = asyncio.create_task(coro)

    這可以通過在一行中使用復合語句來實現(xiàn)。

    ...
    # create a task from a coroutine
    task = asyncio.create_task(task_coroutine())

    這將做幾件事:

    • 將協(xié)程包裝在異步任務實例中。

    • 安排任務在當前事件循環(huán)中執(zhí)行。

    • 返回一個任務實例

    任務實例可以被丟棄,通過方法與之交互,并由協(xié)程等待。這是從 asyncio 程序中的協(xié)程創(chuàng)建任務的首選方法。

    2.2. 低級 API

    也可以使用較低級別的 asyncio API 從協(xié)程創(chuàng)建任務。

    第一種方法是使用 asyncio.ensure_future() 函數。此函數采用任務、未來或類似未來的對象,例如協(xié)程,以及可選的用于調度它的循環(huán)。如果沒有提供循環(huán),它將被安排在當前事件循環(huán)中。

    如果為這個函數提供了協(xié)程,它會為我們包裝在一個實例中,然后返回。

    ...
    # create and schedule the task
    task = asyncio.ensure_future(task_coroutine())

    我們可以用來創(chuàng)建和調度任務的另一個低級函數是 loop.create_task() 方法。此函數需要訪問特定的事件循環(huán),在該事件循環(huán)中將協(xié)程作為任務執(zhí)行。

    我們可以通過 asyncio.get_event_loop() 函數獲取 asyncio 程序中當前事件循環(huán)的實例。然后可以使用它來調用 create_task() 方法來創(chuàng)建一個 Task 實例并安排它執(zhí)行。

    ...
    # get the current event loop
    loop = asyncio.get_event_loop()
    # create and schedule the task
    task = loop.create_task(task_coroutine())

    3. 任務何時運行?

    創(chuàng)建任務后的一個常見問題是它什么時候運行?

    雖然我們可以通過 create_task() 函數調度協(xié)程作為任務獨立運行,但它可能不會立即運行。事實上,直到事件循環(huán)有機會運行,任務才會執(zhí)行。

    直到所有其他協(xié)程都沒有運行并且輪到任務運行時才會發(fā)生這種情況。

    例如,如果我們有一個 asyncio 程序,其中有一個創(chuàng)建和調度任務的協(xié)程,則調度的任務將不會運行,直到創(chuàng)建任務的調用協(xié)程被掛起。

    如果調用協(xié)程選擇休眠,選擇等待另一個協(xié)程或任務,或者選擇等待已安排的新任務,則可能會發(fā)生這種情況。

    ...
    # create a task from a coroutine
    task = asyncio.create_task(task_coroutine())
    # await the task, allowing it to run
    await task

    現(xiàn)在我們知道什么是任務以及如何安排它們。

    到此,相信大家對“Python中如何創(chuàng)建和運行異步任務”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

    文章題目:Python中如何創(chuàng)建和運行異步任務
    分享網址:http://aaarwkj.com/article42/jjhoec.html

    成都網站建設公司_創(chuàng)新互聯(lián),為您提供全網營銷推廣、營銷型網站建設、域名注冊、自適應網站、品牌網站制作、網站設計

    廣告

    聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

    成都網站建設公司
    海外成人永久免费视频| 少妇被又粗又硬猛烈进视频| 精品一区无遮挡免费网站| 男女做爰高清免费视频| 亚洲欧美午夜福利视频| 国产夫妻自拍在线视频| 97在线视频这里只有精品| 爱我久久视频网免费视频| 日产精品一级二级三级爱| 国产亚洲精品a久久7777| 国产成人综合欧美日韩另类| 欧美一区二区三区情色| 另类欧美亚洲中文在线综合| 亚洲av男人的天堂看| 国产又黄又爽不卡的视频| 日本人妻内射一区二区| 亚洲一区二区日韩综合久久| 草草视频在线观看网站| 色橹橹欧美午夜精品福利| 国产精品呻吟久久人妻| 持续侵犯人妻中文字幕| 校园春色亚洲欧美日韩| 精品国产一区二区三区卡| 麻豆视传媒短视频网站| 亚洲一区二区色黄大片| 日韩欧美亚洲天堂视频| 九九九热在线观看视频| 国产精品欧美久久久久无 | 亚洲成人有码在线观看| 2023天天操夜夜操| 天堂av新版在线观看| 日韩高清一级黄色大片网站| 日日添夜夜添天天操| 黄色午夜福利在线观看| 91亚洲熟妇国产熟妇肥婆| 人妻一区二区三区中文字幕| 久草免费人妻视频在线| 欧美熟妇在线视频你懂的| 91九色精品视频在线观看| 久久av免费一区二区观看| 亚洲国产日朝欧美综合久久|