python做一個(gè)登錄注冊(cè)界面 為什么localtime函數(shù)是線(xiàn)程不安全的?
為什么localtime函數(shù)是線(xiàn)程不安全的?根據(jù)Localtime函數(shù)的原型定義進(jìn)行分析struct TM*Localtime(const time)函數(shù)返回struct TM指針,在函數(shù)描述中不要求
為什么localtime函數(shù)是線(xiàn)程不安全的?
根據(jù)Localtime函數(shù)的原型定義進(jìn)行分析
struct TM*Localtime(const time)函數(shù)返回struct TM指針,在函數(shù)描述中不要求是自由的,證明TM對(duì)象不是malloc或new。那么TM必須是Localtime函數(shù)中的全局變量或局部靜態(tài)變量。
這樣的變量在多線(xiàn)程訪(fǎng)問(wèn)時(shí)會(huì)出現(xiàn)問(wèn)題。第一個(gè)線(xiàn)程在返回Localtime之前更改變量的值,第二個(gè)線(xiàn)程再次更改變量,依此類(lèi)推。這樣,當(dāng)?shù)谝粋€(gè)線(xiàn)程實(shí)際返回時(shí),值被更改了很多次,這是一個(gè)典型的函數(shù)重入問(wèn)題。
因此,Localtime函數(shù)線(xiàn)程不安全。