Can you summarize the following document?
        
  在以下的C語言程式碼中,函式codice_1和函式codice_2都不是可重入的。  以上程式碼中,codice_1使用了全域性變數 "g_var",所以,如果兩個執行緒同時執行它並訪問codice_4,則返回的結果取決於執行的時間。因此,codice_1不可重入。而codice_2呼叫了codice_1,所以它也不可重入。  稍作修改後,兩個函式都是可重入的:

  可重入與執行緒安全兩個概念都關係到函式處理資源的方式。但是,他們有重大區別  下述例子,是執行緒安全的,但不是可重入的。  多執行緒執行時,獲得了互斥鎖的執行緒總能獲得CPU時間片,向前推進執行進度,最終解開互斥鎖,使得別的執行緒也能獲得互斥鎖進入臨界區。但是,如果在單執行緒背景下第一次執行該函式時已經獲得互斥鎖進入臨界區,這時該函式被重入執行,這將在重新申請互斥鎖時被餓死(starvation),因為獲得了互斥鎖的該函式的第一次執行將永遠沒有機會再獲得CPU時間片。
若一個程式或子程式可以「在任意時刻被中斷然後作業系統排程執行另外一段程式碼,這段程式碼又呼叫了該子程式不會出錯」,則稱其為可重入(reentrant或re-entrant)的。即當該子程式正在執行時,執行執行緒可以再次進入並執行它,仍然獲得符合設計時預期的結果。與多執行緒併發執行的執行緒安全不同,可重入強調對單個執行緒執行時重新進入同一個子程式仍然是安全的。