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

是的,它是安全的,在你调用 start 之后。您始终可以使用该isAlive()方法来检查线程是否正在执行。无论如何,你为什么需要这样的假设?

于 2013-07-25T10:04:46.947 回答
0

我相信是这样,因为主线程始终是线程 id #1(如果您不相信我,请检查Thread.currentThread().getId()),并且在您的代码执行之前被初始化(在您的特定情况下)。一旦创建了主线程,任何后续new Thread()都应该触发一个新实例,该实例永远不是主线程。

于 2013-12-15T22:59:22.113 回答