Java中synchronized锁问题

xiynagynag 2014-02-21 10:15:32
Java中synchronized可以锁定方法,其他方法要执行必须排队等待,如何能让其他线程访问到正在锁定的方法时取消执行,而不是等待执行
...全文
179 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joseph_huang 2014-02-25
  • 打赏
  • 举报
回复
“回复于: 2014-02-21 10:28:52 简单使用 synchronized 关键字是做不到的。 用 java.util.concurrent.locks.Lock 的 tryLock(long time, TimeUnit unit) 方法。 raistlic raistlic ” 可以让其他线程等待时间(time*unit)为0。当其他线程调用到被锁的时候,就会立即退出。
TKD03072010 2014-02-21
  • 打赏
  • 举报
回复
Java自带的内置锁(synchronized)是做不到LZ要求的功能的 具有高级特性的Lock可满意LZ的需求 如tryLock方法 详细 可参见Java API文档
raistlic 2014-02-21
  • 打赏
  • 举报
回复
简单使用 synchronized 关键字是做不到的。 用 java.util.concurrent.locks.Lock 的 tryLock(long time, TimeUnit unit) 方法。
william_yao 2014-02-21
  • 打赏
  • 举报
回复
首先你的业务逻辑有问题,当你需要执行一个方法时就肯定是想要执行的,不会是监测到上锁了就不执行啊。 如果你的业务逻辑是想一个方法只要执行一次,当有线程执行了,就不需要其他线程来执行了; 那也可以在方法种加一个全局的标记,当另一个线程进来就访问标记来确定需不需要执行此方法。 当然也可以使用java并发库中的LOCK。上面的大神已经说了。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧