Size: a a a

2020 September 07

AH

Ayrat Hudaygulov in F# Chat
ещё они могут выполняться асинхронно (вразнобой) если твои таски асинхронные
источник

AH

Ayrat Hudaygulov in F# Chat
то есть даже один цпу может асинхронно запускать миллиард тасок
источник

AH

Ayrat Hudaygulov in F# Chat
для этого таска должна сигнализировать когда её можно отпустить и пойти заняться чем-то другим полезным бедному ЦПУ
источник

AH

Ayrat Hudaygulov in F# Chat
вот для этого придумали механизм async
источник

AH

Ayrat Hudaygulov in F# Chat
асинхронные задачи всегда IO, то есть то что ЦПУ может делегировать другой железке - сетевой карте, видюхе, харду
источник

AH

Ayrat Hudaygulov in F# Chat
истинный параллелизм на одном ядре невозможен по определению.
Асинхронность - вполне
источник

UY

Ulan Yeskendirov in F# Chat
Ayrat Hudaygulov
истинный параллелизм на одном ядре невозможен по определению.
Асинхронность - вполне
Многопоточность на одном ядре тоже лишь иллюзия?
источник

AH

Ayrat Hudaygulov in F# Chat
Ulan Yeskendirov
Многопоточность на одном ядре тоже лишь иллюзия?
ну почему же, нет. Параллелизм на одном ядре иллюзия)))
источник

AH

Ayrat Hudaygulov in F# Chat
а многопоточность достижима. Просто каждый поток работает по небольшому кванту времени и тебе кажется что они одновременно выполняются
источник

A

Anatoly in F# Chat
Ulan Yeskendirov
Многопоточность на одном ядре тоже лишь иллюзия?
если не учитывать гипертрединг, то - да
источник

A

Anatoly in F# Chat
т.е. будет множество потоков, но работать они будут по очереди, почти что согласно приоритетам (как написал Айрат выше)
источник

AH

Ayrat Hudaygulov in F# Chat
Я не знаю насчёт DOS, но вот Win3.11 уже вполне сношал многооконную работу
источник

UY

Ulan Yeskendirov in F# Chat
Блин, спасибо. Наконец понял)
источник

AH

Ayrat Hudaygulov in F# Chat
но да, они не работали параллельно конечно
источник

VS

Vasily Shapenko in F# Chat
в 3.11 была добровольная многозадачность
источник

VS

Vasily Shapenko in F# Chat
А не вытесняющая
источник

AH

Ayrat Hudaygulov in F# Chat
Vasily Shapenko
в 3.11 была добровольная многозадачность
ничоси, сирьёзно?
источник

VS

Vasily Shapenko in F# Chat
В 95 вроде только труъ вытесняющая появилась
источник

SB

S B in F# Chat
Ulan Yeskendirov
тут такой вопрос возник, а если требуется параллельно выполнять определенные действия и записывать данные оттуда в лист? Несколько тасков разве будут выполняться параллельно?
каждый поток выполняет асинхронно свое действие, накапливая результат в свой лист. потом наступает стадия мерджинга, обычно на одном потоке, зависит, конечно, от количества таких листов и их размера. но в целом, ты их сливаешь в один большой лист, вбирающий в себя все результаты все вычислений и возвращаешь его потребилю. это эффективный подход, который хорошо масштабируется и его удобно реализовать, оставаясь в стандартной инфраструктуре почти любого ЯП. называется map/reduce.
источник

SB

S B in F# Chat
удобство в том, что у тебя нет общего состояния и потоки не синхронизируются при записывании в общий лист. если это не проблема или если тебе нравится с синхронизацией, то это просто другой подход, хотя масштабируется он ощутимо хуже чем то, что я описал выше.
источник