long和double的線程安全問題

java規範規定了對基本數據類型的操作必須是原子性的,但是long和double除外。 但是對於volatile 修飾的long和double,讀寫必須爲原子的。 但是規範沒有規定怎麼去實現,現今的虛擬機都是把32位作爲原子性操作。但是對於64位確沒有,因此64位虛擬機操作long和double時,會出現兩次寫操作,這就造成了錯位可能,因此在64位上操作共享的long和double時,必須實現同步
相關文章
相關標籤/搜索