アカウント名:
パスワード:
ソースの中で
NS_IMPL_THREADSAFE_ISUPPORTS\d
が宣言されているクラス(たとえば画像のデコーダ)はスレッド化されて動いています。
実装方法にも依りますが、スレッドというのは同じプロセス空間を共有しあうタスクです。 なので、マルチスレッドプログラムの場合、一つのスレッドがおかしくなると、同一プロセス空間に存在する他のスレッドが影響を受けます。 マルチプロセスプログラムの場合、一つのプロセスがおかしくなっても他のプロセスは影響を受けません。 これが「タブの一つがクラッシュしてもセッション全体がダウンすることはないという利点」というわけです。
このため、今回の目的はマルチスレッドモデルでは達成できません。
スレッドやプロセスの取り扱いについてはいろいろあるので、もし興味があるのならばいろいろ論文等を漁るとおもしろいでしょう。 或いは各OSにおけるスレッド/プロセスの取り扱いについて調べるのもおもしろいかと。(少しかじった範囲だと、BSDやLinuxがマルチプロセッサ・マルチコア環境で、スケジューラにスレッド/プロセスをどのように扱わせるかいろいろやっていたみたいですね。)
「リソースを共有していること」がスレッドの定義だから、一部のスレッドが落ちればリソースを共有している他のスレッドが影響を受けないわけないかと。(アプリ側でイロイロと工夫すればなんとかなるかもしれんが、ヒジョーにキビシー。)
まあ逆にプロセスはプロセスで、リソースを共有していないので多数のプロセスを起動すると重くなるもんなんだが。そこはハード進歩による富豪的プログラミングと、OSの進歩でカバーできれば嬉しいなあということでは。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
プロセス vs スレッド (スコア:0)
Re:プロセス vs スレッド (スコア:1, 参考になる)
ソースの中で
が宣言されているクラス(たとえば画像のデコーダ)はスレッド化されて動いています。
Re:プロセス vs スレッド (スコア:2, 参考になる)
デュアルコアCPUのPCで、16タブを一気に開くと
片コアだけCPU使用率100%になります。
Re:プロセス vs スレッド (スコア:1, 参考になる)
これをスレッドで実現させることは、ちょっと無理があるんじゃないかな。
それとプロセスの場合、OSにいろいろ任せることが出来るので、アプリそのものをシンプルにしやすい。
#OSが十分に賢いことが前提としてあるけど
Re:プロセス vs スレッド (スコア:1)
実装方法にも依りますが、スレッドというのは同じプロセス空間を共有しあうタスクです。
なので、マルチスレッドプログラムの場合、一つのスレッドがおかしくなると、同一プロセス空間に存在する他のスレッドが影響を受けます。
マルチプロセスプログラムの場合、一つのプロセスがおかしくなっても他のプロセスは影響を受けません。
これが「タブの一つがクラッシュしてもセッション全体がダウンすることはないという利点」というわけです。
このため、今回の目的はマルチスレッドモデルでは達成できません。
スレッドやプロセスの取り扱いについてはいろいろあるので、もし興味があるのならばいろいろ論文等を漁るとおもしろいでしょう。
或いは各OSにおけるスレッド/プロセスの取り扱いについて調べるのもおもしろいかと。(少しかじった範囲だと、BSDやLinuxがマルチプロセッサ・マルチコア環境で、スケジューラにスレッド/プロセスをどのように扱わせるかいろいろやっていたみたいですね。)
ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
Re: (スコア:0)
「リソースを共有していること」がスレッドの定義だから、一部のスレッドが落ちれば
リソースを共有している他のスレッドが影響を受けないわけないかと。
(アプリ側でイロイロと工夫すればなんとかなるかもしれんが、ヒジョーにキビシー。)
まあ逆にプロセスはプロセスで、リソースを共有していないので多数のプロセスを起動
すると重くなるもんなんだが。そこはハード進歩による富豪的プログラミングと、OSの
進歩でカバーできれば嬉しいなあということでは。