nsIThread
出典: MDC
この記事は Firefox 3 の新機能について述べています
nsIThread インタフェースは、オペレーティングシステム (OS) のスレッドに対する高レベルの抽象化を提供します。スレッドには組み込みのキューが含まれており、スレッドは、そのスレッド上で処理される nsIRunnable オブジェクト (イベント) を取得できるイベントターゲットと言えます。
スレッドを作成するには、nsIThreadManager インタフェースを使います。
継承元: nsIEventTarget
目次 |
nsIThread は xpcom/threads/nsIThread.idl で定義されています。これは scriptable で
非凍結です。 (Mozilla 1.9から更新されていません)
[編集] メソッドの概要
void shutdown()
|
boolean hasPendingEvents()
|
boolean processNextEvent(in boolean mayWait)
|
[編集] 属性
| 属性 | 型 | 説明 |
PRThread
| PRThread
| nsIThread に相当する NSPR スレッドオブジェクト。読み取り専用。
|
[編集] メソッド
[編集] shutdown()
スレッドを停止します。これは、そのスレッドに割り当てられているイベントを中止し、スレッドが現在のスレッドに加わる前に、待機中のイベントがある場合はそれらを実行して完了させます (詳しくは PR_JoinThread() を参照してください)。このメソッド呼び出しの実行中、現在のスレッドに割り当てられたイベントは処理が継続されます。
void shutdown()
[編集] 引数
なし。
[編集] 投げられる例外
- NS_ERROR_UNEXPECTED
shutdown()が、スレッド自体から誤って呼び出された場合。そのスレッドがスレッドマネージャのnewThread()メソッドを使って作成されたものではない場合。あるいはスレッドがすでに停止処理中である場合。
[編集] hasPendingEvents()
処理待機中のイベントがそのスレッドに存在するかどうかを判別します。
boolean hasPendingEvents()
[編集] 引数
なし。
[編集] 戻り値
関数が呼び出された時点で待機中のイベントが存在する場合は true。なお、false が返ってきた場合でも、現在のスレッドに他のスレッドがイベントを追加できるため、このメソッドが返るまでにイベントキューが空ではなくなる可能性があります。
[編集] 投げられる例外
- NS_ERROR_UNEXPECTED
- このスレッドが現在のスレッドではないときにこのメソッドが呼び出された場合。
[編集] processNextEvent()
次に待機中のイベントを処理します。待機中のイベントが存在しない場合、mayWait 引数の値によっては、新しいイベントがスレッドに割り当てられるまで待機状態となります。
このメソッドは再入可能ですが、このスレッドが現在のスレッドである場合のみ呼び出されます。
boolean processNextEvent( in boolean mayWait )
[編集] 引数
- mayWait
trueの場合、イベントキューが空であるときは、新しいイベントが処理可能になるまで待機します。falseの場合、イベントキューが空であるときは即座に返ります。
[編集] 戻り値
イベントが処理中であった場合は true、待機中のイベントが存在しない場合は false。
[編集] 投げられる例外
- NS_ERROR_UNEXPECTED
- このスレッドが現在のスレッドではないときにこのメソッドが呼び出された場合。
[編集] 関連記事
- The Thread Manager
nsIThreadManagernsIThreadPoolnsIThreadInternalnsIThreadObservernsIThreadEventFilter
カテゴリ: Firefox 3 | Interfaces | Threads