比如说同步,死锁啊,刚学不太理解,大神们随便讲一点撒,小老弟先谢谢

解决方案 »

  1.   

    举个很简单的例子,银行的例子
    银行卡有5000元,A和B两人同时从这个账户取钱,两人同时查询到的余额都是5000;
    A取了2000,正常情况余额只剩3000, 但是B当时取得时候查询的余额也是5000.所以B取1000,余额就变成4000,这就是所谓的异步
    同步就是,A取2000的时候,B虽然查询余额也是5000,但是B取钱的时候发现A已经在操作了,就停下来等A操作完在进行操作,就是5000-2000-1000,余额剩余2000,
    同步机制就是靠锁来实现的,简单的有synchronized死锁:
    两个字符串a和b,再创建两个线程A和B,让每个线程都用synchronized锁住字符串(A先锁a,再去锁b;B先锁b,再锁a),如果A锁住a,B锁住b,A就没办法锁住b,B也没办法锁住a,因为它们都在等待对方先释放锁,这时就陷入了死锁。
      

  2.   

    我也是新手,讲讲自己的理解,线程就是抢资源,A和B两个线程要钓鱼就要鱼竿和鱼饵,A抢到了鱼竿,B抢到了鱼饵,都在等着对方释放所拥有的资源,就会形成死锁。
      

  3.   

    经典书籍,有推荐没呢推荐JCIP, JAVA多线程编程核心技术, 以及oracle官文