并发基础

  1. Java并发结构
  2. 任务取消(Cancellation)
  3. Java NIO与IO
  4. JVM运行时数据区
  5. happens-before
  • Trackback 关闭
  • 评论 (14)
    • annybz
    • 2013/09/03 5:41下午

    今天发现这么一个关于并发的网站,甚是高兴,于是注册,看文章,结果就看到评论里面各种指出错误,对于初学者,这不是误导么这是?

    • 哪些文章有各种错误?我们会改正的。

        • susu
        • 2014/05/26 5:04下午

        能看下 最下面我的问题吗? @transaction synchonized 方法 且单例 能不能 防止 并发访问出现的问题

    • Wayne
    • 2013/12/02 4:43下午

    有错误是好事:)
    激发自己的思考能力,这样才会学的透彻 懂得更多

    • zwm512327
    • 2013/12/06 8:05上午

    我看了好久了。没发现什么错误,尤其是为了说明问题精心设计的例子,非常收益。多谢。

    • zwm512327
    • 2013/12/06 8:07上午

    我看了好久了。没发现什么错误,这个主要是看思想,尤其是为了说明问题精心设计的例子,非常受益。多谢。

    • 龙甲
    • 2014/05/20 10:27下午

    很好的网站,我看过几篇文章就很喜欢。加油。

    • susu
    • 2014/05/26 2:50下午

    有个问题,一个spring容器管理项目,一个方法会被并发访问,方法为同步方法且用@Transcation注解,数据库隔离机制为 可重复读,
    业务是这样的,用户交易 后 本地会产生一条 交易流水记录,status为0, 然后调用第三方支付,第三方支付 会同步异步 回调本地 这个方法两次, 这个方法内部 先判断 status是不是为0 ,然后 账户增加10元, 那假如 同步 异步同时回调,那 会不会出现 该用户账户 增加两次金额 情况
    @Transcation
    public synchronized void callback() {
    查询交易流水记录 status
    if(status == 0) {
    用户帐号 增加10元
    交易流水记录 status 设为1
    } else {
    不作为

    }

      • 树下偷懒的蚁
      • 2015/02/13 6:24下午

      应该不会,同步和异步应该分属不同的线程,调用的是同一个对象的方法,那么synchronized 会加锁控制线程的进入。

      • 花猪
      • 2017/05/02 9:28上午

      同一个对象,不同线程是可以的。

      • vanhelsing
      • 2019/08/29 6:34下午

      这样写会出现增加两次金额的情况,例: 第一个线程获取到对象锁执行完 callback 后释放锁,此时事务还未提交,第二个线程进去后获取到的status依然是0.

    • zhenglichenboy
    • 2018/04/26 5:23下午

    这几天看了网站不少的文章,质量很高,很用心,特意注册来评论,表达感谢

return top