Информация об изменениях

Сообщение Re[34]: Для тех, кто смеется над JavaScript от 29.06.2020 12:27

Изменено 29.06.2020 12:28 Serginio1

Re[34]: Для тех, кто смеется над JavaScript
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Serginio1, Вы писали:


I>>>Ты хочешь получить гонки на одной задаче? Гонки это когда много задач Или много под-задач.

S>> Был вопрос про однопоточность. По сути подразумевалось про однозадачность для данного объекта.

I>Ты путаешь однопоточность и однозадачность.

Я тебе про однозадачность уже много расписывал. Ничего я не путаю.

S>>>>Если задачи выполняются через await никакому другому эта задача не уйдет!

S>>Если ты запустил несколько задач без await, то это уже многозадачность!

I>Капитан, я про это и пишу!

А я тебе пишу про однозадачность!

S>> Это не сахар, а конечный автомат. Внутри стоит yield.


I>Стоит или не стоит, это прячется компилятором. Один из вариантов это трансляция в промисы, второй вариант — нативный await, еще вариант — yield, еще вариант — конечный вариант, самый упоротый из всех.

I>И, о ужас, еще вариант — обычные колбеки.

I>Функционально все это сводится к колбекам. Никаких преимуществ сверх этого нет и не будет.


S>> А при чем тут мьютекс? Ты же сам пишешь " Авайт всего лишь связывает последовательность", то есть части awaite выполняются последовательно.


I>А потому, что я изначально пишу про многозадачность, а именно — асинхронный однопоточный код.

Потому, что ты не читатель! Я тебе сразу написал про однозадачность.

S>>О каких нескольких цепочках идет речь? Вторую цепочку ты можешь запустить без awaite. Тогда и синхронному коду придет кирдык!


I>Я именно про это и пишу.


S>>Возьми мой код с await и посмотри. Если там будет разнобой значит дерьмо ваша JS.


I>Ты похоже влез и начал не читая махать шашкой.


I>Читай себя

I>

I>будут вызываться только в одном методе (await гарантирует последовательность вызовов из разных потоков)
I>Читай и записывай хоть откуда. Тоже, что и при синхронном.


I>Собственно, здесь ты наврал. Во первых, исполнение жээс это один поток, а во вторых, читать и записывать хоть откуда не выйдет и я показал, почему именно не выйдет.


S>>Если, же ты хочешь писать многозадачный код, то неатомарный код тебе нужно синхронизировать.


I>И про это я тоже пишу. Все мои примерно про многозадачность в жээсе и про необходимость синхронизации.


S>>Но речь то идет про однозадачность. Будь она синхронная или асинхронная.


I>


S>>Все твои примеры из многозадачности от которой не спасает и синхронный код.


I>Бинго! С этого все и начиналось. Только надо было читать внимательно.

Во во. Я тебе сразу писал про однозадачность
B i++ будет атомарным при любом режиме.
В .Net используют для SpinLock вернее Interlocked.Increment(ref nextTaskIndex)

Ладно. Зря потратил время. Извини. Завелся
Re[34]: Для тех, кто смеется над JavaScript
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Serginio1, Вы писали:


I>>>Ты хочешь получить гонки на одной задаче? Гонки это когда много задач Или много под-задач.

S>> Был вопрос про однопоточность. По сути подразумевалось про однозадачность для данного объекта.

I>Ты путаешь однопоточность и однозадачность.

Я тебе про однозадачность уже много расписывал. Ничего я не путаю.

S>>>>Если задачи выполняются через await никакому другому эта задача не уйдет!

S>>Если ты запустил несколько задач без await, то это уже многозадачность!

I>Капитан, я про это и пишу!

А я тебе пишу про однозадачность!

S>> Это не сахар, а конечный автомат. Внутри стоит yield.


I>Стоит или не стоит, это прячется компилятором. Один из вариантов это трансляция в промисы, второй вариант — нативный await, еще вариант — yield, еще вариант — конечный вариант, самый упоротый из всех.

I>И, о ужас, еще вариант — обычные колбеки.

I>Функционально все это сводится к колбекам. Никаких преимуществ сверх этого нет и не будет.


S>> А при чем тут мьютекс? Ты же сам пишешь " Авайт всего лишь связывает последовательность", то есть части awaite выполняются последовательно.


I>А потому, что я изначально пишу про многозадачность, а именно — асинхронный однопоточный код.

Потому, что ты не читатель! Я тебе сразу написал про однозадачность.

S>>О каких нескольких цепочках идет речь? Вторую цепочку ты можешь запустить без awaite. Тогда и синхронному коду придет кирдык!


I>Я именно про это и пишу.


S>>Возьми мой код с await и посмотри. Если там будет разнобой значит дерьмо ваша JS.


I>Ты похоже влез и начал не читая махать шашкой.


I>Читай себя

I>

I>будут вызываться только в одном методе (await гарантирует последовательность вызовов из разных потоков)
I>Читай и записывай хоть откуда. Тоже, что и при синхронном.


I>Собственно, здесь ты наврал. Во первых, исполнение жээс это один поток, а во вторых, читать и записывать хоть откуда не выйдет и я показал, почему именно не выйдет.


S>>Если, же ты хочешь писать многозадачный код, то неатомарный код тебе нужно синхронизировать.


I>И про это я тоже пишу. Все мои примерно про многозадачность в жээсе и про необходимость синхронизации.


S>>Но речь то идет про однозадачность. Будь она синхронная или асинхронная.


I>


S>>Все твои примеры из многозадачности от которой не спасает и синхронный код.


I>Бинго! С этого все и начиналось. Только надо было читать внимательно.

Во во. Я тебе сразу писал про однозадачность
B i++ будет атомарным при любом режиме.
В .Net используют для SpinLock вернее Interlocked.Increment(ref nextTaskIndex)

Ладно. Зря потратил время. Извини. Завелся. Только вот за что минусы я так и не понял