Size: a a a

WebAssembly — русскоговорящее сообщество

2019 August 31

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
что подразумевает вопрос про юзать из жс?
источник

DB

Dmitry Bubnenkov in WebAssembly — русскоговорящее сообщество
Можно ли на JS написать приложение которые бы создавало потоки который на pthread
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry Bubnenkov
Повторю вопрос:
Васм умеет потоки. Но возможно ли их из JS юзать?
Есть веб воркеры, но общение через MessageChannel - это один подход, не самый быстрый.
В последних версиях Хрома из под js можно использовать еще и SharedArrayBuffer и атомики:
https://www.sitepen.com/blog/the-return-of-sharedarraybuffers-and-atomics/
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
это не совсем корректная постановка вопроса, но я постараюсь ответить. pthreads не будет в любом случае, будут веб воркеры. в жс они тоже есть. если браузер поддерживает SharedArrayBuffer, то можно делать (условно-)нормальную многопопоточность. если SAB нет, то и потоки в васме нельзя сделать, потому что васм реюзает этот же SAB
источник

C

Constantine in WebAssembly — русскоговорящее сообщество
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
о чем это ☝️должно сказать? :)
источник

C

Constantine in WebAssembly — русскоговорящее сообщество
да вот разбираюсь для каких целей pthread.h юзают, но пока знаний маловато
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry Bubnenkov
Можно ли на JS написать приложение которые бы создавало потоки который на pthread
emscripten умеет эмулировать pthreads, но там есть много нюансов, например невозможно семулировать POSIX сигналы, usleep, fork, join и некоторые другие методы. Да и я не особо вижу смысла копировать точно pthreads. С атомиками ты можешь легко создать свои Mutex, Семафоры и другие примитивы синхронизации, Futex-ы у тебя уже есть - это Atomics.notify и Atomics.wait. Вот например как мог бы выглядеть Mutex:
https://github.com/AssemblyScript/assemblyscript/pull/521#issuecomment-468661492
источник

DB

Dmitry Bubnenkov in WebAssembly — русскоговорящее сообщество
http://browser.openworm.org а это на васм написано?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry Bubnenkov
http://browser.openworm.org а это на васм написано?
Совет: просто открой dev tools, таб network и посмотри не приходил ли блоб с расширением .wasm. Если нет значит не на Wasm. Не вижу необходимости там WebAssembly. Обычный WebGL viewer
источник
2019 September 01

EO

Eugene Obrezkov in WebAssembly — русскоговорящее сообщество
источник

DB

Dmitry Bubnenkov in WebAssembly — русскоговорящее сообщество
MaxGraey
emscripten умеет эмулировать pthreads, но там есть много нюансов, например невозможно семулировать POSIX сигналы, usleep, fork, join и некоторые другие методы. Да и я не особо вижу смысла копировать точно pthreads. С атомиками ты можешь легко создать свои Mutex, Семафоры и другие примитивы синхронизации, Futex-ы у тебя уже есть - это Atomics.notify и Atomics.wait. Вот например как мог бы выглядеть Mutex:
https://github.com/AssemblyScript/assemblyscript/pull/521#issuecomment-468661492
Эта эмуляция или это все реально поверх pthreads?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry Bubnenkov
Эта эмуляция или это все реально поверх pthreads?
Ну вот опять) Мы же уже это вроде выяснили здесь:
https://t.me/WebAssembly_ru/20834

Такие такие pthreads в Web API? =)
источник

DB

Dmitry Bubnenkov in WebAssembly — русскоговорящее сообщество
Так они поверх тредов работают?
источник

DB

Dmitry Bubnenkov in WebAssembly — русскоговорящее сообщество
Один воркер = один системный тред?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
W3C standard:
"Create a separate parallel execution environment (i.e. a separate thread or process or equivalent construct), and run the rest of these steps asynchronously in that context."

Так что думаю native thread или green thread там зависит сугубо от браузера, спецификация не делает никаких акцентов на этом
источник

K🔥

Kirill 🔥 Cherkashin in WebAssembly — русскоговорящее сообщество
А почему везде пишут что WA это не замена JS? Ну кроме того что рано пока?
источник

K🔥

Kirill 🔥 Cherkashin in WebAssembly — русскоговорящее сообщество
Если WA добавит какие-нить байндинги для компонентов, почему собственно нет?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Kirill 🔥 Cherkashin
А почему везде пишут что WA это не замена JS? Ну кроме того что рано пока?
источник

K🔥

Kirill 🔥 Cherkashin in WebAssembly — русскоговорящее сообщество
О, отлично, спасибо
источник