localtime_s函數的用法 為什么localtime函數是線程不安全的?
為什么localtime函數是線程不安全的?根據Localtime函數的原型定義進行分析struct TM*Localtime(const time)函數返回struct TM指針,在函數描述中不要求
為什么localtime函數是線程不安全的?
根據Localtime函數的原型定義進行分析
struct TM*Localtime(const time)函數返回struct TM指針,在函數描述中不要求是自由的,證明TM對象不是malloc或new。那么TM必須是Localtime函數中的全局變量或局部靜態變量。
這樣的變量在多線程訪問時會出現問題。第一個線程在返回Localtime之前更改變量的值,第二個線程再次更改變量,依此類推。這樣,當第一個線程實際返回時,值被更改了很多次,這是一個典型的函數重入問題。
因此,Localtime函數線程不安全。