好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
JAVA中的synchronized是什么意思? 关闭 返回上一级  

JAVA中的synchronized是什么意思?
+ 查看更多

发布日期:2018-03-10 11:44
分类:JAVA
浏览次数:83
在synchronized关键字的用法和意义上我有一些问题。
 
  • synchronized关键字的意义是什么?
  • 什么时候需要使用synchronized方法?
  • 在编程和逻辑角度上它意味什么?

回答

synchronized关键字是处理对于不同线程对同一变量、对象和资源的读写问题。这个问题在 JAVA 中不是很简单就能给你解释的,不过 Sun 说过这样一句话,你看看:
synchronized方法使用一种简单的策略,使得线程之间的干扰和内存一致性错误得到了预防。如果一个对象中明显有一个以上的线程,它们是使用synchronized方法来读取或写入对象的变量。
我给你非常简单的概括一下:当你有两个线程需要去读和写同一个资源,我们把这个资源叫 foo ,你要保证这些线程访问这些变量是一种原子级的方式。如果没有同步关键字,你的线程1也许会看不见线程2对 foo 的改变,也有可能更糟糕,这个变量只被改变了一半。这肯定不是你逻辑上期待的那样。
我再说一遍,在 JAVA 中这个不是很容易就能说清楚的话题。你如果想了解更多,去SO里探索更多相关的话题并且下面的网址也看一下:
 
  • Concurrency
  • Java Memory Model
 
兄弟,继续探索这些话题直到 " Brian Goetz " 这个名字永远和你脑海里 " concurrency "这个术语联系起来。
上一篇在Java中将“ArrayList 转换为'String []'
'for'循环遍历Java中的一个枚举下一篇
下一篇'for'循环遍历Java中的一个枚举

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2017  苏州卡达网络科技有限公司 好问 GOODQ.TOP 备案号:苏ICP备09008221号-5