Size: a a a

Programming Offtop

2020 July 23

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
А теперь вот этот:


print(1)
new Thread(()=> {
  sleep(2000)
  print(2)
}).start()
print(3)

Тоже асинхронный?
тоже
источник

AN

Alexander Nozik in Programming Offtop
А вот если вы сделаете join в первом и втором случае, то в первом он все равно будет асинхронным, а во втором станет синхронным
источник

TP

Tim Plotnikov in Programming Offtop
Но он также может быть и параллельным, так?
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Но он также может быть и параллельным, так?
Параллельность тут ортогональна совершенна. Оно может быть и параллельно и не параллельно. Например в корутинах, если диспатчер однопоточный, то там будет не параллельно. А во втором случае все будет зависеть от железа
источник

ML

Mikhail Levchenko in Programming Offtop
Ilmir
Конкретно для этого: Интересно, как устроены корутины? Bytecode View -> Decompile @
взял на карандаш
источник

AN

Alexander Nozik in Programming Offtop
паралельность ортогональна... что-то в этом есть.
источник

TP

Tim Plotnikov in Programming Offtop
Alexander Nozik
Параллельность тут ортогональна совершенна. Оно может быть и параллельно и не параллельно. Например в корутинах, если диспатчер однопоточный, то там будет не параллельно. А во втором случае все будет зависеть от железа
Забудьте про корутины на секунду, рассмотрим лишь примеры кода пока)
Думаю мы оба согласны что тред в последнем примере может быть может быть запущен на другом потоке и выполнится параллельно по отношению к вызывающему коду?
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Забудьте про корутины на секунду, рассмотрим лишь примеры кода пока)
Думаю мы оба согласны что тред в последнем примере может быть может быть запущен на другом потоке и выполнится параллельно по отношению к вызывающему коду?
в обоих случаях может.
источник

BP

Bogdan Panchenko in Programming Offtop
Tim Plotnikov
В чем разница семантики?
Как я понимаю, оба приема (потоки, корутины) позволяют исполнить код не в той последовательности, в какой он указан в исходном коде.
Как раз наоборот, если у вас внутри саспенд функции нет корунтин билдероа, а есть только вызов саспенд функций - то функции будут вызывается последовательно, но неизвестно когда и будет ли пауза между вызовами
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Как раз наоборот, если у вас внутри саспенд функции нет корунтин билдероа, а есть только вызов саспенд функций - то функции будут вызывается последовательно, но неизвестно когда и будет ли пауза между вызовами
Верно. И в корутине как правило порядок вызовов будет обратным
источник

TP

Tim Plotnikov in Programming Offtop
Alexander Nozik
в обоих случаях может.
То есть вы согласны, что параллельный код запускается асинхронно по отношению к вызывающему коду?
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
То есть вы согласны, что параллельный код запускается асинхронно по отношению к вызывающему коду?
Нет. Я согласе с тем, что это два разных понятия. Параллельный может выполняться и синхронно и асинхронно. Как напишите
источник

AN

Alexander Nozik in Programming Offtop
Параллельность - это специфика выполнения. Синхронность - специфика обработки результатов
источник

ML

Mikhail Levchenko in Programming Offtop
@ilmirus нужно сделать из твоей картинки триптих. Какой самый всратый байткод можно сюда подставить?
источник

ML

Mikhail Levchenko in Programming Offtop
источник

TP

Tim Plotnikov in Programming Offtop
Alexander Nozik
Нет. Я согласе с тем, что это два разных понятия. Параллельный может выполняться и синхронно и асинхронно. Как напишите
Параллельный код не может выполниться синхронно.
Если вы запустите параллельную обработку коллекции, то сам вызов-то будет все равно синхронным!
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Параллельный код не может выполниться синхронно.
Если вы запустите параллельную обработку коллекции, то сам вызов-то будет все равно синхронным!
По второму кругу пошли. Предлагаю помедитировать над тем, что уже написано. Особенно над моей последней репликой.
источник

TP

Tim Plotnikov in Programming Offtop
Alexander Nozik
По второму кругу пошли. Предлагаю помедитировать над тем, что уже написано. Особенно над моей последней репликой.
Вы хоть и учёный, но ужасный твердолоб)
Оставим)
источник

BP

Bogdan Panchenko in Programming Offtop
Tim Plotnikov
Не синхронизированный с чем?
Ну например у тебя есть вызов двух саспенд функций, они идут друг за другом.

Но если первая саспенд функция выполнилась, то не факт что будет выполнения следующей
источник

AN

Alexander Nozik in Programming Offtop
Tim Plotnikov
Вы хоть и учёный, но ужасный твердолоб)
Оставим)
Разумеется. Но в данном случае, я этим очень много занимался, так что сформировал компетентное мнение.
источник