关于 interrupt的说明

测试认为,只有必须catch (InterruptedException e) {的操作执行时候,才会受到此方法的干扰,

否则不受干扰。


 public void doTask() {
        Log.i("main","我开车");
        Log.i("main","路途中20秒");
        int i = 0;
        while (i<20000){
            Log.i("main","执行中"+i++);
        }
        Log.i("main","我停车");
    }

如果子线这个方法执行过程中,我在主线interrup,但是doTask并不会受此此方法的干扰的


这样是可以的,但是测试发现在interrupt()方法执行后,可能还会正常执行几次take,有一定的延迟性

  try {
                task = mQueue.take();
            } catch (InterruptedException e) {
                if (mQuit) {
                    Log.i("main","线程被终止");
                    return;
                }
                continue;
            }


你可能感兴趣的:(关于 interrupt的说明)