在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  Java/ JAVA賦值語句線程安全性,例如 int a = 1線程安全?

JAVA賦值語句線程安全性,例如 int a = 1線程安全?

在java里的賦值語句的線程安全性
int a = 1 是否線程安全?
int b = 2;
a= b 是否線程安全?

Object c = new Object() 是否線程安全?

我在博客里找到的答案是 第一個線程安全,第二個不知道,第三個線程不安全。

以下是我找到的一些解釋:
int i = 1;
是線程安全的,因為這條語句會被翻譯為一條指令iconst_1,不存在線程安全問題;

//A c = new A();
這個操作分為三部處理
1.棧里創(chuàng)建a的符號引用
2.堆里創(chuàng)建A對象
3.把a指向A
所以,這個賦值語句不是線程安全的

回答
編輯回答
愚念
  1. 方法內部定義的變量是不存在線程安全問題的;
  2. 方法內部創(chuàng)建的對象,只要不會給別的線程訪問,也不存在線程安全問題。

怎樣做到線程安全,其實只要在編寫類的時候處理好線程安全性就可以了,使用這個類的時候就不用擔心什么。如果一個類已知是線程不安全的(例如 StringBuilder),那么就限制它只在當前方法里面使用即可。

2017年7月12日 22:23
編輯回答
柒喵

看不出問題里有任何共享的對象,談何線程安全與否?

2017年7月24日 06:38