秒殺多線程系列中的題目

來源:互聯網
上載者:User

標籤:全域   hid   adp   問題   lob   wol   windows編程   logs   dao   

1. 什麼是安全執行緒?(2012年5月百度實習生面試)

  如果多線程的程式運行結果是可預期的,而且與單線程的程式運行結果一樣,那麼說明是“安全執行緒”的。

a.線程的概念、線程的基本狀態及狀態之間的關係

    另外,這個網址裡面講作業系統的知識倒是挺詳實的,還有另外一種解釋線程概念

  b.多線程的幾種實現方法分別是什嗎?

    這個貌似在java面試中會出現,我是專註於c++的,無視掉,但是不得不說,秒殺多線程面試題系列真心是個好總結

  c.多線程同步與互斥有幾種實現方法?都是什嗎?(C++)

   臨界區(CS:critical section)、事件(Event)、互斥量(Mutex)、訊號量(semaphores),需要注意的是,臨界區是效率最高的,因為基本不需要其    他的開銷,二核心對象涉及到使用者態和核心態的切換,開銷較大,另外,關鍵段、互斥量具有線程所有權的概念,因此只可以用於線程之間互斥,而不能用到    同步中。只有互斥量能完美解決進程意外終止所造成的“遺棄問題”。

  d.多線程同步和互斥有何異同,在什麼情況下分別使用他們?舉例說明

   所謂同步,表示有先有後,比較正式的解釋是“線程同步是指線程之間所具有的一種制約關係,一個線程的執行依賴另一個線程的訊息,當它沒有得到另一個    線程的訊息時應等待,直到訊息到達時才被喚醒。”所謂互斥,比較正式的說明是“線程互斥是指對於共用的進程系統資源,在各單個線程訪問時的排它性。當    有若干個線程都要使用某一共用資源時,任何時刻最多隻允許一個線程去使用,其它要使用該資源的線程必須等待,直到佔用資源者釋放該資源。線程互斥    可以看成是一種特殊的線程同步。”表示不能同時訪問,也是個順序問題,所以互斥是一種特殊的同步操作。

   舉個例子,設有一個全域變數global,為了保證安全執行緒,我們規定只有當主線程修改了global之後下一個子線程才能訪問global,這就需要同步主線程與子    線程,可用關鍵段實現。當一個子線程訪問global的時候另一個線程不能訪問global,那麼就需要互斥。

   e.以下多線程對int型變數x的操作,哪幾個需要進行同步: 
    A. x=y;      B. x++;    C. ++x;    D. x=1;

           答案是ABC,顯然,y的寫入與x讀y要同步,x++和++x都要知道x之前的值,所以也要同步。

   f.多線程中棧與堆是公有的還是私人的

    A:棧公有, 堆私人

    B:棧公有,堆公有

    C:棧私人, 堆公有

    D:棧私人,堆私人

    答案是C,棧一般存放局部變數,而程式員一般自己申請和釋放堆中的資料(詳見堆與棧的區別)。

   g.在Windows編程中互斥量與臨界區比較類似,請分析一下二者的主要區別。

     臨界區、互斥量、號誌、事件的區別總結

     針對這個題目的話,答案主要有以下幾點:

      1)互斥量是核心對象,所以它比臨界區更加耗費資源,但是它可以命名,因此可以被其它進程訪問

      2)從目的是來說,臨界區是通過對多線程的序列化來訪問公用資源或一段代碼,速度快,適合控制資料訪問。 
            互斥量是為協調共同對一個共用資源的單獨訪問而設計的。 

   h.一個全域變數tally,兩個線程並發執行(程式碼片段都是ThreadProc),問兩個線程都結束後,tally取值範圍。 

原博地址:http://www.cnblogs.com/wuchanming/p/3992395.html

秒殺多線程系列中的題目

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.