多線程-返回結果備忘錄

2016-09-02 11:12:14.584 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:12:14.584 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:12:14.584 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:12:14.584 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:12:14.585 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:12:14.586 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:426]:讀取還有幾個能夠搶2
2016-09-02 11:12:14.586 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:426]:讀取還有幾個能夠搶1
2016-09-02 11:12:14.586 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:426]:讀取還有幾個能夠搶0
2016-09-02 11:12:14.587 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:426]:讀取還有幾個能夠搶-1
2016-09-02 11:12:14.587 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:426]:讀取還有幾個能夠搶-2
2016-09-02 11:12:14.588 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:431]:搶完了
2016-09-02 11:12:14.588 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:431]:搶完了
2016-09-02 11:12:14.588 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:431]:搶完了
2016-09-02 11:12:14.589 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:431]:搶完了
2016-09-02 11:12:14.589 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:431]:搶完了java


                log.info("測試00000000000000");
                i=i-1;  //2,
                log.info("讀取還有幾個能夠搶"+i);
                if(i>0){
                    log.info("搶走了一個"+i);
                }else{
                    log.info("搶完了");
                }多線程

=============================================寫互斥==========================================================================測試


2016-09-02 11:15:12.544 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:15:12.544 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:15:12.544 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:15:12.544 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:15:12.545 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:15:12.546 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶2
2016-09-02 11:15:12.547 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:430]:搶走了一個2
2016-09-02 11:15:12.548 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶1
2016-09-02 11:15:12.548 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:430]:搶走了一個1
2016-09-02 11:15:12.549 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶0
2016-09-02 11:15:12.549 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:15:12.550 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶-1
2016-09-02 11:15:12.550 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:15:12.551 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶-2
2016-09-02 11:15:12.552 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:432]:搶完了線程

                log.info("測試00000000000000");
                writeLock.lock();
                try {
                    i=i-1;  //2,
                    log.info("讀取還有幾個能夠搶"+i);
                    if(i>0){
                        log.info("搶走了一個"+i);
                    }else{
                        log.info("搶完了");
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally{
                    writeLock.unlock();
                }it

                
===================================================讀 不互斥===========================================================================                
                
2016-09-02 11:17:27.653 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:17:27.653 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:17:27.653 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:17:27.654 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:17:27.653 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:17:27.655 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶2
2016-09-02 11:17:27.655 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶1
2016-09-02 11:17:27.655 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶0
2016-09-02 11:17:27.656 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶-1
2016-09-02 11:17:27.656 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶-2
2016-09-02 11:17:27.656 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:17:27.657 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:17:27.657 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:17:27.658 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:17:27.658 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:432]:搶完了    io

                i=3;
                log.info("測試00000000000000");
                readLock.lock();
                try {
                    i=i-1;  //2,
                    log.info("讀取還有幾個能夠搶"+i);
                    if(i>0){
                        log.info("搶走了一個"+i);
                    }else{
                        log.info("搶完了");
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally{
                    readLock.unlock();
                }            
                block


======================synchronized==============================================
2016-09-02 11:19:42.251 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:19:42.253 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶2
2016-09-02 11:19:42.253 [http-bio-8090-exec-7] [INFO ] [HttpUtils.java:430]:搶走了一個2
2016-09-02 11:19:42.509 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:19:42.509 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶1
2016-09-02 11:19:42.510 [http-bio-8090-exec-5] [INFO ] [HttpUtils.java:430]:搶走了一個1
2016-09-02 11:19:42.567 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:19:42.568 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶0
2016-09-02 11:19:42.569 [http-bio-8090-exec-4] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:19:42.644 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:19:42.644 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶-1
2016-09-02 11:19:42.645 [http-bio-8090-exec-6] [INFO ] [HttpUtils.java:432]:搶完了
2016-09-02 11:19:42.735 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:424]:測試00000000000000
2016-09-02 11:19:42.736 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:428]:讀取還有幾個能夠搶-2
2016-09-02 11:19:42.737 [http-bio-8090-exec-9] [INFO ] [HttpUtils.java:432]:搶完了                sync

 

 

 

關於多線程訪問,返回的結果,值得深思synchronized

相關文章
相關標籤/搜索