线程会在if语句中中断吗?

zb_ch 发布于 2016/06/14 10:15
阅读 333
收藏 0

    在多线程程序中,线程轮流执行,随时会被中断,那线程会在if语句中被中断吗?

    示例:

// 此处的condition是线程共享的
if(condition is true){
    // 在这里中断,也就是条件判断结束后被中断
}

    这样会导致程序逻辑错误。这种情况会出现吗?在不同平台上会存在差异吗?



加载中
0
xpbob
xpbob
会,既然是中断,肯定不管你执行到什么程度的,最好把中断的条件写到自己的线程里,让线程自己停下来
0
tinshen
tinshen
return掉呗。直接退出当前线程。
0
刘柳
刘柳
线程被interupt,会受到异常警告,InteruptedException,根据异常再做对应处理。
0
zb_ch
zb_ch

不好意思,是我没描述清楚,再写一个示例:

int g_reduce = 100;

// 线程routine
void thread(){
    if(g_reduce > 0){
        // 线程执行到这里的时候被挂起了,回来后从此处继续执行,这样会产生
        // g_reduce为负数的情况
        g_reduce--;
    }
}



返回顶部
顶部