Anonymous
Anton
ох, вы все сейчас про event queue?
Anton
возможно в случае event queue так и есть, я в общем говорю
Anonymous
+
Anton
в js нет пока, там вообще потоков нет :)
Anonymous
не очень понимаю, какая может быть альтернативная структура
Anonymous
ШТО
Anonymous
Anonymous
где у нас асинхронность ЧИСТО СЛУЧАЙНО выполнится раньше
Anton
в С создаёшь поток который изменит локальную переменную - он может её изменить раньше чем выполнится следующая строчка после создания потока
Anonymous
"раньше чем следующая строчка"
Anonymous
огонь фраза
Anton
?
Anonymous
ну да ладно
ты путаешь, видимо, многопоточность и асинхронность
Anonymous
нет?
Igor
Anonymous
тот самый это какой
Anonymous
О
Anonymous
епта
Anonymous
здорово
Anonymous
тот самый
Anton
нет?
нет, в данном случае будет и многопоточность, и асинхронность
Anonymous
:)
Igor
Anonymous
Anonymous
прошу прощения за французский
Anonymous
нет асинхронного ЧИСТО СЛУЧАЙНОГО ПОДХОДА
Anonymous
чисто случайно и метеорит может сейчас упасть
Anonymous
в твоем примере это многопоточность
Anton
лень спорить с тобой короче
Anton
загугли race condition
Anonymous
ну понятно
Anton
в моём примере это и асинхронность, и многопоточность блять
Anton
вызов асинхронный, потому что мы не ждём явно завершения потока
Anton
многопоточный - понятно почему, потому что поток создаём второй :)
Anton
в случае с очредью событий, когда у нас только один поток есть, там тоже есть варианты в зависимости от реализации
Anonymous
@igorz ты, кстати, еще в итране?
Anonymous
или где там
Anonymous
в иссофте
Igor
Anonymous
фулстек или бэкенд?
Igor
фул
Igor
был ext.js на клиенте, теперь jquery
Igor
Anonymous
Anton
вот с ней и есть неопределённость, когда у тебя завершится асинхронная операция
Anonymous
мы о разном, в общем
Anton
Anonymous
я понял, ок
Anton
В с ты создаешь поток, который возможно закончится раньше, в зависимости от сложности операции, но это сверх редкий случай, в js же, асинхронный код всегда выполнится позже, потому что, сам запуск выполнения асинхронного кода будет после того, как он пройдет по всему коду, на сколько я помню.
ну да, потому что до того как функция закончится к выполнению следующего события из очереди нельзя перейти, поток-то один
Anton
я потому выше и написал, что в js скорее всего так и есть
Anonymous
Anton
кстати, не сверх редкий случай
Anton
там вместе с созданием потока контекст выполнения похоже переключается на него, потому если у тебя в потоке все операции в этом потоке выполнятся за одну квоту процессорного времени, то есть большая вероятность, что результат ты получишь сразу же
Anton
ну то на Java :) там везде куча оверхеда
Anton
на С встречалось нередко
Anonymous
Anton
while (!done) { курим_сигарету; спим 20мс; }, где done - atomic, как пример
Anton
ничего дикого :)
Anton
вот при таком подходе есть вероятность, что ни одной сигареты ты выкурить не успеешь
Anonymous
Anonymous
И встречи с сигаретой окончены
Anton
не понял тебя
Anton
я вообще вот это имел в виду, если что
Anton
createThread(... function_setting_done ...);
while (!done) { курим_сигарету; спим 20мс; };
Anonymous
Реальный пример приведи
Anton
это реальный пример же
Anton
можно написать скомпилировать
Anton
вместо курим сигарету можно что угодно делать, не принципиально, что мы там делаем пока ждём
Anton
или в смысле в каком алгоритме такое понадобиться может?
Anonymous
При котором из 100 запусков,
Anonymous
Я получу хотя бы олно срабатывание
Anonymous
Раньше
Anonymous
Одно