色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

為什么localtime函數是線程不安全的

吉茹定2年前19瀏覽0評論

為什么localtime函數是線程不安全的?

從localtime函數的原型定義分析

struct tm *localtime(const time_t *timep);

localtime函數返回了一個struct tm指針,函數的說明中并未要求調用者將該指針free掉,證明tm對象并非是malloc或new出來的。那么tm一定是個全局變量或者是localtime函數中的局部靜態變量。

這樣的變量在多線程訪問時會出問題,第一個線程在localtime返回之前首先改變了這個變量的值,第二個線程又進來改變這個變量,以此類推。這樣第一個線程在真正返回時該值已經被多次改變,這是典型的函數重入問題。

因此localtime函數線程不安全。

多線程靜態變量java,為什么localtime函數是線程不安全的