Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。
什麼是non-reentrant function
什麼是non-reentrant function?
什麼情況下會發生?
那同步函式算是non-reentrant function嗎?
5 個解答
- ?Lv 77 年前最佳解答
什麼是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
除非她對那些變數 有特設的保護與控制
- 匿名使用者7 年前
>這家不錯*****買幾次啦真的一樣
伶味劓
- 匿名使用者7 年前
>這里很不錯aaashops。com老婆很喜歡
勤剱凾冋介