有关线程的问题
threads.start(()=>{
log("..1")
threads.currentThread().interrupt()
// sleep(20)
log("..2")
})
这段代码,按正常逻辑先输出..1,然后线程中断。但我实际测试时发现,仍然会先后输出..1和..2,这说明 threads.currentThread().interrupt()没有及时中断线程的执行。当我尝试在threads.currentThread().interrupt()后面给了一个sleep后,我发现线程是能按正常逻辑中断了。
这么看来,这个interrupt()中断线程是一个耗时的异步操作?
第 1 条补充
· 3 天前
难道sleep阻塞操作,会在sleep结束后,让线程自动检查中断状态?sleep完成后,当线程检查到中断状态后就直接中断了?