社区
Java SE
帖子详情
对 synchronized 同步理解不够,谁能不能帮帮我。
no9988
2008-05-30 01:23:51
对 synchronized 同步理解不够,谁能帮帮我。
给我举几个实际的例子说明一下。
谢谢咯!
...全文
97
7
打赏
收藏
对 synchronized 同步理解不够,谁能不能帮帮我。
对 synchronized 同步理解不够,谁能帮帮我。 给我举几个实际的例子说明一下。 谢谢咯!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
H~~~
2008-05-30
打赏
举报
回复
举个例子:
一群人排队上厕所,进去一个把门锁上,别人就进不去,出来之后别人再进!
no9988
2008-05-30
打赏
举报
回复
额
谢谢楼上的几位哦
这个分 是怎么给的
我刚刚注册DSDN 还不太熟悉`
`
abc44718455
2008-05-30
打赏
举报
回复
比如说,两个地方卖同样一列火车的火车票,如果不同步,就可能出现两个地方同时卖出一张票,比如:A地方有人买票,发现票号为6的还没卖出,他就准备买下票号为6的票,同时B地方也发现6号票没卖出,也有人准备买这张票,这时,如果这两个地方不同步,6号票就可能被同时卖出,如果同步,则只有一个地方卖出这张票
finalzhzhk
2008-05-30
打赏
举报
回复
[Quote=引用 3 楼 finalzhzhk 的回复:]
synchronized 就是把一个对象(或一个方法)设个标志位。这个标志位的值是0或1。
当访问这个对象(或方法)时,首先监测标志位是不是0,如果不是0说明别人在用,那么就等待。如果是0,说明
这个对象现在可用,那么把标志位设为1,然后用这个对象,使用结束后再设置标志位为0
:)simple
[/Quote]
对了,说明一下,这不是我的理解,也不是比喻,而是java的锁机制
finalzhzhk
2008-05-30
打赏
举报
回复
synchronized 就是把一个对象(或一个方法)设个标志位。这个标志位的值是0或1。
当访问这个对象(或方法)时,首先监测标志位是不是0,如果不是0说明别人在用,那么就等待。如果是0,说明
这个对象现在可用,那么把标志位设为1,然后用这个对象,使用结束后再设置标志位为0
:)simple
duzhonghua
2008-05-30
打赏
举报
回复
你买火车票的那个系统就用到了同步........
GODProbe
2008-05-30
打赏
举报
回复
一个对象有且只有一个同步锁、这个锁就是一个对象、可能就是这个对象本身。
当前线程执行一个对象中的synchronized代码块或用synchronized修饰的方法时必须首先获得这把锁、此时这把锁就是这个对象。这把锁不是这个对象的情况是:synchronized(其他对象引用){...}。
当前线程只有持有这把锁才能自由调用该对象上的synchronized代码块或synchronized修饰的方法。
如果这把锁在别的线程手里,那么jvm将当前线程存入该对象的锁等待池,只有持有锁线程释放这把锁后,当前线程才有可能继续运行。持有锁线程如果异常退出会释放锁、持有锁线程执行了该对象的wait方法也会释放锁并进入该对象的等待池中(注意不是锁等待池)直到别的线程调用该对象的notify方法则jvm随机在等待池挑选一个线程来执行。
Thread.yield方法或sleep方法不会释放锁、只是把运行机会让给其他线程。yield方法让给至少同优先级的其他线程、sleep则是直接令当前线程休眠。
单例模式---初级,饿汉,懒汉,双锁,内部类,方法实现
目录 1.初级写法 2.加锁 3.饿汉式 4.懒汉式 5.双锁检验 ...小二在学习的时候,偶尔看到单例模式的初级写法,便想着将自己目前了解到的单例模式的...初级模式,便是在类内部声明一个私有的静态变量,并不实例化,实...
Java类加载与锁
本文写作的灵感来自Pierre-Hugues Charbonneau的为什么加载不存在的类会影响系统性能一文。这让我想起了之前的一次调试经历,当时也遇到了类似的问题,只不过表现略有不同。 出问题的应用程序是Yet Another ...
"臭名昭著的Java”
不知道为什么还要发明Java这种语言。不就比C++多了几个库,多了几个专职开发Open source源代码的开发商。classpath是个臭名昭著的问题,一不小心就出问题。界面是出奇难用,倒退到DOS命令行去了。速度奇慢,可以出去...
类加载与锁
本文写作的灵感来自Pierre-Hugues Charbonneau的为什么加载不存在的类会影响系统性能一文。这让我想起了之前的一次调试经历,当时也遇到了类似的问题,只不过表现略有不同。 出问题的应用程序是Yet Another Webapp,...
ARM经典300问(来源: ChinaUnix博客)
为什么80%的码农都做不了架构师?>>> ...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章