The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Google начал открытие реализации модели потоков M:N, opennews (??), 28-Июл-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


42. "Google начал открытие реализации модели потоков M:N"  –6 +/
Сообщение от Аноним (42), 28-Июл-20, 16:03 
> На этом месте паслись "зелёные нити" (полная х...ь как концепция, IMO)
> - во многие языки тянут coroutines (\equiv "зелёные нити");

Да в этом все и дело - удобно реализовать сопрограммы без поддержки языка не вышло, а поскольку в божественной нерасширяемой идеальной сишечке поддержки нет, то и прижиться они не могли, а очень бы пригодились например в микроконтроллерах вместо гигантских конечных автоматов.

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

48. "Google начал открытие реализации модели потоков M:N"  +3 +/
Сообщение от anonymous yet another (?), 28-Июл-20, 16:33 
Привет поколению Z!

Вы язык программирования с архитектурой процессора(ов) в запарке не попутали?

Ответить | Правка | Наверх | Cообщить модератору

73. "Google начал открытие реализации модели потоков M:N"  –1 +/
Сообщение от Аноним (42), 28-Июл-20, 18:30 
Бумерам привет.

При чем тут архитектура? Для преобразования сопрограммы в конечный автомат:

http://dunkels.com/adam/pt/expansion.html

нужны особые архитектуры?

Ответить | Правка | Наверх | Cообщить модератору

77. "Google начал открытие реализации модели потоков M:N"  +/
Сообщение от Аноним (77), 28-Июл-20, 18:48 
Зумерок, прекращай читать инвалидов умственного труда.
Ответить | Правка | Наверх | Cообщить модератору

80. "Google начал открытие реализации модели потоков M:N"  –1 +/
Сообщение от Аноним (42), 28-Июл-20, 19:07 
Автор uIP - инвалид умственного труда? Окей, бумер. Гиганты мысли с опеннета поражают.
Ответить | Правка | Наверх | Cообщить модератору

81. "Google начал открытие реализации модели потоков M:N"  +/
Сообщение от Аноним (77), 28-Июл-20, 19:12 
Реализация tcp/ip под микроконтроллеры - святой грааль программирования? Окей, зумер, читай кого хочешь.
Ответить | Правка | Наверх | Cообщить модератору

90. "Google начал открытие реализации модели потоков M:N"  +4 +/
Сообщение от anonymous yet another (?), 28-Июл-20, 20:16 
Если я правильно понимаю, то вы всё время в сторону программирования на baremetal подмигиваете.

Так это вообще здесь не причём. Нет MMU, нет кэшей, нет операционки --- нет понятия kernel space/user space. Т.е. к изначальной теме никак не относится.

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

72. "Google начал открытие реализации модели потоков M:N"  +/
Сообщение от Аноним (72), 28-Июл-20, 18:23 
В "нерасширяемой сишечке" эти твои корутины делаются на макросах препроцессора.

https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html

Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

74. "Google начал открытие реализации модели потоков M:N"  –1 +/
Сообщение от Аноним (42), 28-Июл-20, 18:35 
Я знаю, пользоваться этим невозможно. Сравни с современными async/await.
Ответить | Правка | Наверх | Cообщить модератору

107. "Google начал открытие реализации модели потоков M:N"  +2 +/
Сообщение от Аноним (72), 28-Июл-20, 22:49 
Ну, тем не менее, подход Саймона Тэтхэма даёт рабочие корутины (утверждалось, что их невозможно реализовать совсем в сях, кроме как руками - я привёл контрпример). А async/await как по мне - вреден, ибо большинство смузипрогеров даже не вникает в то, как это работает. Типа, о - крутая штука для "многопоточности". А что там творится под капотом и как это реализовано (скажем, что там оно разворачивается в конечный автомат) - даже не догадываются. Реально есть кадры, которые на полном серьёзе считают, что корутины - это про мультитрединг.
Ответить | Правка | Наверх | Cообщить модератору

125. "Google начал открытие реализации модели потоков M:N"  +2 +/
Сообщение от Аноним (125), 29-Июл-20, 09:31 
Тут нужны оговорки. Первое это различать три вещи:
1. Корутины
2. Протопотоки
3. Фиберы

То, что ты показал не юзабельно, т.к. не используется одна важная инструкция современных процессоров -- JMP (b для ARM). Тут пример без jmp, но это, имхо, также из серии сделал-по-приколу, но более юзабельно чем то, что ты показал: https://github.com/spc476/C-Coroutines

>А async/await как по мне - вреден, ибо большинство смузипрогеров даже не вникает в то, как это работает.
>Реально есть кадры, которые на полном серьёзе считают, что корутины - это про мультитрединг.

Если речь про async/await из C#, то там действительно они работают в режиме многопоточности. Это происходит просто потому, что операция await применяется к конкретному потоку (который заранее создан встроенным планировщиком) и не избирается автоматически для main-потока. И вообще, в C# нет корутин в юзерспейсе, равно как и файберов, хотя были реализации на сишных/плюсовых либах.

В других ЯП, корутины, основанные на jmp, можно оборачивать в конкретный поток, чтобы избавиться от ожидания операций с блокирующими доступом. В частности, контейнером для корутин могут быть форкнутые процессы.

Вывод, если ты смеешься над другими и точно знаешь нижележащую реализацию, то ты молодец. А если ты не знал сказанного выше, тогда мы посмеемся над тобой )

Ответить | Правка | Наверх | Cообщить модератору

84. "Google начал открытие реализации модели потоков M:N"  +/
Сообщение от Аноним (86), 28-Июл-20, 19:51 
> В "нерасширяемой сишечке" эти твои корутины делаются на макросах препроцессора.

Ты не смотрел, что по ссылке? Или просто не едал ничего слаще морковки?
> https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
> So now we have this monstrosity, let's rewrite our original code fragments using it.


int decompressor(void) {
    static int c, len;
    crBegin;
    while (1) {
        c = getchar();
        if (c == EOF)
            break;
        if (c == 0xFF) {
            len = getchar();
            c = getchar();
            while (len--)
            crReturn(c);
        } else
        crReturn(c);
    }
    crReturn(EOF);
    crFinish;
}

Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

108. "Google начал открытие реализации модели потоков M:N"  –2 +/
Сообщение от Аноним (72), 28-Июл-20, 22:51 
А что? Там должен быть async/await, выблёвывающий смузи?
Ответить | Правка | Наверх | Cообщить модератору

134. "Google начал открытие реализации модели потоков M:N"  +/
Сообщение от Аноним (134), 29-Июл-20, 17:28 
Статические переменные внутри функции? Не велели такого отцы-основатели
Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру