abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 11
    včera 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 2
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    7.5. 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    7.5. 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (64%)
     (7%)
     (13%)
     (16%)
    Celkem 143 hlasů
     Komentářů: 10, poslední včera 17:35
    Rozcestník

    Dotaz: Asyncio: Rozdíl tasků, jen list vs list s create_task()

    27.11.2023 01:27 Olaf
    Asyncio: Rozdíl tasků, jen list vs list s create_task()
    Přečteno: 271×
    Chystám se některé své kódy, u kterých je to možné, oprostit od kombinace Redis + RQ. A to tak, že je přepisuji v Pythonu pomocí využití asyncio. Chci se zeptat, jaký je rozdíl mezi tím, když použiji jen seznam funkcí, které se mají spustit, a když tento seznam bude sestávat z opravdových asyncio tasků definovaných pomocí asyncio.create_task()? Protože v obou případech je časový výsledek týž (viz kód níže). Jde říct, že pomocí create_task() lze pracovat s výjimkami tak, že mi nespadne během chyby běh komplet celého seznamu?

    Totálně primitivní příklad:
    async def fetch_url(url):
        print(f"Getting {url}...")
        await asyncio.sleep(0.5)
        return "Response OK. Done"
    
    Verze pouze s prostým listem:
    async def main():
        start_time = time.time()
        tasks = [fetch_url(url) for url in URLS]
    
        results = await asyncio.gather(*tasks)
        end_time = time.time()
        elapsed = end_time - start_time
        print(f"Fetching took {elapsed:.2f} seconds.")
        return results
    
    Verze s asyncio taskem:
    async def main():
        start_time = time.time()
        tasks = [asyncio.create_task(fetch_url(url)) for url in URLS]
    
        results = await asyncio.gather(*tasks)
        end_time = time.time()
        elapsed = end_time - start_time
        print(f"Fetching took {elapsed:.2f} seconds.")
        return results
    
    V obou případech je čas běhu stejný, tj. 0,5 s, na rozdíl od synchronního kódu, kde pro 15 URL to trvá, jak by člověk čekal, 7,5 sekundy.

    Odpovědi

    27.11.2023 01:54 Olaf
    Rozbalit Rozbalit vše Re: Asyncio: Rozdíl tasků, jen list vs list s create_task()
    OK, uvědomil jsem si, že asyncio.gather() dělá seznam tasků, takže kombinace s create_task() je zcela zbytečná.
    27.11.2023 02:00 X
    Rozbalit Rozbalit vše Re: Asyncio: Rozdíl tasků, jen list vs list s create_task()

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.