Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

什麼是non-reentrant function

什麼是non-reentrant function?

什麼情況下會發生?

更新:

那同步函式算是non-reentrant function嗎?

5 個解答

評分
  • ?
    Lv 7
    7 年前
    最愛解答

    什麼是non-reentrant function?

    non-reentrant function is a function that is NOT reentrant.

    A function is reentrant if

    1) it can be invoked multiple times concurrently

    2) its invocation sequences can be interrupted, resumed, and interleaved in any sequence.

    什麼情況下會發生?

    most common non-reentrant situations are caused by resource sharing. For example:

    int errno;

    void onlyEven(int a) { errno=1&a;}

    The function onlyEven() is non-reentrant in "multi-thread" environment for the reason that all calling sequences to the function in a multi-thread environment share the same errno global variable

    2014-05-08 20:59:08 補充:

    > 那同步函式算是non-reentrant function嗎?

    "同步"函式? 你是說CSP嗎?我認為你的觀念錯誤很多!

    除了少數有用到process/thread manipulation系統呼叫的 那些特殊"函式"以外,一般的函式.根本不知道:

    1.自己有幾個分身正在被執行中

    2.每個分身正在怎樣的執行環境中被執行

    所以,以下的論點應該是正確的:

    所有的有用到"全域"(或是比自己擁有的較大的區域)變數的"函式" 都應該被認為是

    non-reentrant function

    除非她對那些變數 有特設的保護與控制

  • ?
    Lv 7
    7 年前

    阿平, 「以上」應該是「>」, 我認為 Lopez 大大的才是正解。

    所以我給他正評, 只是以事論事。

    (。◕‿◕。)

  • 7 年前

    non-reentrant function is a function that is NOT reentrant.

  • 匿名
    7 年前

    >這家不錯*****買幾次啦真的一樣

    伶味劓

  • 匿名
    7 年前

    >這里很不錯aaashops。com老婆很喜歡

    勤剱凾冋介

還有問題嗎?立即提問即可得到解答。