私は基本的なアンドロイドゲームを作っていますが、私はゲームの世界を表示する断片を持っています。私がそのフラグメントを開くと、私はNetworkThread
がサーバーから世界を得るまで待つだけの新しいスレッドを作成します。また私のGetWorldThread
はstatic
Thread
であり、フラグメント内でのみ初期化します。私GetWorldThreadがどのように見えるかオブジェクトを同期させるとJavaで動作する方法
は、これは次のとおりです。
synchronized (this)
{
try
{
Log.d("getWorldThread", "waiting()");
wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
と私のNetworkThread
は私のコードは動作します。この
if (buffer instanceof World)
{
synchronized (WorldFragment.getWorldThread)
{
World.setWorld(((World) buffer));
Log.d("NetworkThread", "notifying World");
WorldFragment.getWorldThread.notify();
}
}
のように見えますが、私はこれより多くを行う方法があるかどうかを知りたいですエレガント?。
この投稿を参照してください:http://stackoverflow.com/questions/442564/avoid-synchronizedthis-in-java/36692190#36692190 –