内容へ移動
WildTree Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
排他制御
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 排他制御 ====== ===== 概要 ===== マルチタスク/マルチスレッド環境下では、同じリソースに同時にアクセスが発生しないように排他制御をおこなう必要がある(場合がある)。 Androidの多くのプログラムはJavaで記述されているので、Javaの排他制御の手法に従って実装をすれば良い。 ===== 例 ===== Javaの排他制御は、任意のオブジェクトに対して **synchronized**を行い、synchronizedに付随するブロックの中の処理が、同じオブジェクトに対してsynchronizedしているブロックとの間で排他制御が行われる。 <code> public static final Object[] lock = new Object[0]; ... synchronized(lock) { // 排他制御したい処理をここに書く。 ... } </code> 排他制御に使うオブジェクトは任意のものでよく、実装上軽量であるのはサイズ0の配列であるとのこと((AndroidのBackupAgentのドキュメントにそのような記述あり。))なので、それを使っているが、勿論、排他制御のためだけにオブジェクトを作る必要はなく、他のオブジェクトを流用しても構わない。 とはいえ、読みにくくなるので、分けた方がわかりやすいだろう。 [[Androidに関して]]
排他制御.txt
· 最終更新: 2015/04/10 08:27 by
127.0.0.1
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ