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