1

私が開発しているアプリの場合、次のようにメイン スレッドからスレッドを作成しました。

            Thread background = new Thread(new Runnable() {
            public void run() {
                Log.d ("Thread", "Thread has started");
                processImage(data, size.width, size.height, camera);
                camera.addCallbackBuffer(data);
                Log.d ("Thread", "Thread has ended");
                }
            });

            if (!background.isAlive){
                background.start();
            }

では、この新しく作成されたスレッドが (バックグラウンドで) メイン スレッドと一緒に実行されていると仮定しても安全でしょうか?

4

2 に答える 2

0

メインスレッドは常にスレッドID#1であり(信じられない場合は、チェックしてくださいThread.currentThread().getId())、コードが初期化される前に(特定のケースで)初期化されるため、私はそう信じています。そのメイン スレッドが作成されると、後続new Thread()のインスタンスは新しいインスタンスをトリガーする必要がありますが、これは決してメイン スレッドではありません。

于 2013-12-15T22:59:22.113 に答える
0

はい、start を呼び出した後は安全です。このメソッドをいつでも使用してisAlive()、スレッドが実行中かどうかを確認できます。とにかく、なぜそのような仮定が必要なのですか?

于 2013-07-25T10:04:46.947 に答える