<bgdev />free

Вход Регистрация

край на примитивните езици!
0

0 1 2 3 4 5

#125628 (ツ) synergie
Създадено на 04.11.2024 , видяно: 219 пъти.
|

Некадърния "консултант", типично по консултантски, се е оплел в кълчищата и дори и ChatGPT не може да му помогне.

В което няма нищо лошо, ако имаше способността да си признае когато е некадърен.

За GC дори няма смисъл да се говори с хора, които не знаят колко добри са съвременните GC. Разни думички като multi-generational, asynchronous и т.н. не им говорят нищо.

Тръба, като нямаш какво да кажеш, говориш общи приказки.

#125629 (ツ) Последният акаунт на Единия
Създадено на 04.11.2024 , видяно: 208 пъти.
|

Некадърния "консултант", типично по консултантски, се е оплел в кълчищата и дори и ChatGPT не може да му помогне.

В което няма нищо лошо, ако имаше способността да си признае когато е некадърен.

За GC дори няма смисъл да се говори с хора, които не знаят колко добри са съвременните GC. Разни думички като multi-generational, asynchronous и т.н. не им говорят нищо.

There are designations, like “economist,” “prostitute,” or “consultant,” for which additional characterization doesn't add information. - Nassim Taleb

#125660 (ツ) Stilgar
Създадено на 04.11.2024 , видяно: 186 пъти.
synergie
Stilgar

хммм това какво ще даде

ако имаш


async def test()
    print('hello')
    await asyncio.sleep(5)
    print('world')

и го викнеш какво ще стане?

Нищо няма да стане, докато не го awaitnesh или не го вкараш в event loop-a.

Stilgar

Иначе документацията говори за някакво create_task дето трябва да се ползва та май си прав и поведението на C# ще се получи ако се ползва това create_task

Ще се получи подобно, но не същото. В C# асинхронния таск ще тръгне паралелно на кода който го е стартирал, в питон трябва event loop-a да се освободи, потенциално от последващ await в кода(не задължително върхъ таска) след този който го е стартирал, и това не е заради GIL-a сам по себе си, а заради имплементацията в питон, която естествено е повлияна от наличието на GIL.

import asyncio
import time

async def some_task():
    print("Task started")
    await asyncio.sleep(2)
    print("Task completed")

async def main():
    task = asyncio.create_task(some_task())  # Task is created but won't start immediately
    print("Main function continues immediately without yielding")
    while True:
        sleep(1) # This prevents the task from running indefinitely

    await asyncio.sleep(2) # Now the task gets a chance to run OR
    await task  # Now the task gets a chance to run


asyncio.run(main())

Ама не, в C# няма да тръгне паралелно (в общия случай де), буквално ще тръгне в абсолютно същия thread и ще изпълни частта до await-а (вътрешния), тоест това ще принтира hello, ще поръча нещо асинхронно, ще се запише за IO completion ports или каквото е там на Linux и тогава ще се върне контрола на викащия метод. Даже примерно ако await-а е скрит зад някакъв if таскът ще се изпълни синхронно. Например да речем, че имаш някакъв кеш и проверяваш дали имаш вече данните и само ако нямаш правиш заявката, това ако е пълен кешът ще завърши синхронно на същата нишка и таскът ще се върне направо с IsCompleted true

#125663 (ツ) waldorf
Последно редактирано на 04.11.2024 от waldorf, видяно: 180 пъти.

Бе тя идеята на асинк/авейт е да симулира многозадачност в една нишка. Като кажеш “авейт” кода си връви докато не стигне до някоя асинхронна операция и там запомня екзекюшън стейта и превключва към някой който се е начакал. Т.е. Пишман кооперативен мултитаскинг който изглежда кат магия за който не го знае в детайли що за магарии прави. Това да го пускаш в отделна нишка означава, че не го знаеш как работи. Ти може да си въртиш някой безкраен цикъл в друга нишка но по някое време трябва да комуникираш със тази която авейтва, че може да продължи.

И това работи щото в жабаскрипт локалните променливи са анонимен обект. Нямам идея какво са насътворили в питоня и остро си за да се върнеш обратно на майната си все едно нищо не е станало и досега си си бил все на същото място.

#125680 (ツ) |
Последно редактирано на 04.11.2024 от |, видяно: 160 пъти.
waldorf

Бе тя идеята на асинк/авейт е да симулира многозадачност в една нишка. Като кажеш “авейт” кода си връви докато не стигне до някоя асинхронна операция и там запомня екзекюшън стейта и превключва към някой който се е начакал. Т.е. Пишман кооперативен мултитаскинг който изглежда кат магия за който не го знае в детайли що за магарии прави. Това да го пускаш в отделна нишка означава, че не го знаеш как работи. Ти може да си въртиш някой безкраен цикъл в друга нишка но по някое време трябва да комуникираш със тази която авейтва, че може да продължи.

И това работи щото в жабаскрипт локалните променливи са анонимен обект. Нямам идея какво са насътворили в питоня и остро си за да се върнеш обратно на майната си все едно нищо не е станало и досега си си бил все на същото място.

Async/await е метод за асинхронно програмиране. Може да работи със зелени нишки, може и с истински.

#125717 (ツ) Евлампи
Създадено на 04.11.2024 , видяно: 135 пъти.
waldorf

И това работи щото в жабаскрипт локалните променливи са анонимен обект. Нямам идея какво са насътворили в питоня и остро си за да се върнеш обратно на майната си все едно нищо не е станало и досега си си бил все на същото място.

нАучната концепция е call-with-current-continuation, гото на стероиди, некви хипари на трева с добавки са го измислили през шейсетте на миналия век :)

Гуугъла е абсолютно безполезно лайно, сик транзит глория мунди

0 1 2 3 4 5

край на примитивните езици!
0

AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE