V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

Java :能否举一个并发的情形,使用 synchronized 根本实现不了或很复杂,必须用 wait/notify ?

  •  
  •   Newyorkcity · 2020-03-31 19:17:46 +08:00 · 948 次点击
    这是一个创建于 1703 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我知道 synchrnoinzed 无法控制线程阻塞时间,想让线程阻塞 10s 后咱不干了抛个异常走人是做不到的。除此之外呢?

    那如果现在我改了 JVM 源码,做到了可以这样

    public synchronized(1000) void synMethod(){..}

    来表示并实现了 『尝试执行此同步方法,阻塞最大允许时间为 1000ms,超过就抛异常然后本线程走人不干了』的功能的话,

    还有情形用 wait/notify 很简单优美但用 synchrnozied 很烦躁吗?

    谢谢解答
    3 条回复    2020-03-31 22:37:29 +08:00
    m30102
        1
    m30102  
       2020-03-31 22:26:41 +08:00   ❤️ 1
    ```
    synchronized(obj) {
    try{
    future.get(1000 * 10, TimeUnit.MILLISECONDS);
    }catch(){
    }

    }
    ```
    Jacky23333
        2
    Jacky23333  
       2020-03-31 22:33:26 +08:00 via Android
    既然想要等待可中断,为什么不选择 lock 呢
    momocraft
        3
    momocraft  
       2020-03-31 22:37:29 +08:00
    CountdownLatch
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3381 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:26 · PVG 19:26 · LAX 03:26 · JFK 06:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.