请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

主线程阻塞了,为啥运行没有报错?

老师您好,这里主线程阻塞了,为啥运行没有报错?

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final CountDownLatch latch = new CountDownLatch(1); // 声明计数器
        Thread t = new Thread() {
            public void run() {
                try {
                    sleep(1000 * 6);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                latch.countDown(); // 计数器减1
            }
        };
        t.start();

        try {
            // 主线程阻塞了,为啥运行没有报错?
            latch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}

我认为上面这种阻塞属于性能问题,不属于异常问题,只是会让界面显示延迟。
是否可以这样理解:
开发中是可以让主线程阻塞的(哪怕阻塞十几秒),只要别导致事件不能响应就行。

正在回答

1回答

这个应该会anr,你理解的差不多

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号