[求職面試][多線程]多線程題目彙總

  1. 阿里2013筆試併發

    兩個等價線程併發的執行下列程序,a爲全局變量,初始爲0,假設printf、++、--操做都是原子性的,則輸出不願哪一個是(A)
    
    
    void foo() {      
    if(a <= 0) { //1
        a++;//2
    }
    else { //3
        a--; //4
        }
        printf("%d", a); //5
    }
    A.01
    B.10
    C.12
    D.22

用A1表示線程A進行到了第1條指令後面線程

01
A1 A2 B3 B4 B5 A5 只有這樣才能輸出第一個0 ,可是第二個不多是1了。
輸出 00code

10
A1 A2 A5 B3 B4 B5變量

12
A1 B1 A2 A5 B2 B5程序

22
A1 B1 A2 B2 A5 B5筆試

相關文章
相關標籤/搜索