5

バリアセマフォロックモニターなどの同期プリミティブはJavaScript / Web Workersで利用できますか、それともそのようなものを利用できるようにするライブラリがありますか(java.util.concurrentのようなものを考えています) Javaで)?

ワーカーには、スレッドと区別するためのあいまいなプロパティがありますか(たとえば、メインスレッドとメモリを共有できますか)?スポーンできるワーカーの数に何らかの制限がありますか(セキュリティ上の理由などで...)?私は何か特別な注意を払う必要がありますか?

4

3 に答える 3

3

Webワーカーには、共有メモリの概念がありません。スレッド間で受け渡されるすべてのメッセージがコピーされます。そうは言っても、Webワーカーモデルではバリア、セマフォ、ロック、モニターは必要ないため、これらはありません。

共有メモリの概念は2011年2月に提案されましたが、開発者の複雑さのためにステータスは修正されません=> https://lists.webkit.org/pipermail/webkit-unassigned/2011-February/287595.html

ここには、Webワーカーについての宣伝文句もあります。 http://blogs.msdn.com/b/ie/archive/2011/07/01/web-workers-in-ie10-background-javascript-makes-web-apps-faster.aspx

お役に立てれば

于 2011-11-30T22:31:10.017 に答える
2

ここに、その目的のために作成されたjQueryに基づくライブラリがあります:http ://www.megiddo.ch/jcon-q-rency 。

もちろん、他の回答で説明されているように、同じ環境を扱っていないため、モデルはjava.util.concurrentと実際には同一ではありません...

于 2012-08-28T09:18:41.773 に答える
2

つまり、javascriptには同期プリミティブはありませんが、JavaScriptは本質的にシングルスレッドであるため、同期プリミティブも必要ありません:)。ワーカーは、独自のスコープにのみアクセスでき(dom操作は計算だけではありません)、通常のjsが存在するメインのUIスレッドにメッセージを送信できます。ワーカーの最大数はわかりませんが、確かに制限があります。ブラウザで試してみてください:)

お役に立てれば!

于 2011-11-30T22:30:25.020 に答える