看了网络上很多资源对 JVM 的介绍
堆和方法区都是共享的
是不是没有加线程安全的措施(加锁等操作)都是非线程的安全的?
求解……
看了网络上很多资源对 JVM 的介绍
堆和方法区都是共享的
是不是没有加线程安全的措施(加锁等操作)都是非线程的安全的?
求解……
|
1
[是不是没有加线程安全的措施(加锁等操作)都是非线程的安全的]
因为:没有=非=不=否 所以:没有加线程安全的措施=不加线程安全的措施 结论:没有加线程安全的措施 = 非线程的安全的措施 |
|
lhx2008Apr 26, 2018 via Android
2
线程安不安全和堆区方法区有什么关系吗
|
|
3
不是,举个反例,并发的读取(只读不写)也是安全的。
只不过很显然大部分场景中涉及到写,所以需要保证线程安全。 |
|
momocraftApr 26, 2018
5
(自己知道安全--不安全) 和 (實際安全--不安全) 是兩個維度. 學得多的人這兩個維度夾角會很小.
不安全未必就一定出問題 |
|
flyzy2005Apr 27, 2018 via iPhone
6
CAS 是不是也没加锁?
|
|
shalkApr 27, 2018 via iPhone
7
线程安全和 jvm 使用堆 没有直接关系. 是两个层面的事情.
例如 如果两个线程没有共享变量,这个两个线程的行为无论何种顺序都表现出正确的行为.那它们是线程安全的. 也不用加锁啊. 如果两个线程有一个共享的 Integer,进行累加. 出现了竞态条件,当然需要同步操作保证一下才安全. 但这和 jvm 堆似乎没有什么直接关系. |