Java線程檢測基本的問題猜想
Java線程檢測需要我們學習相當多的知識。其實話說回來,在不斷的學習中我們就能發現在很多的時候還是有不少的技巧。下面我們就詳細的看看如何才能更好的學習相關知識。#t#
天修改程序的時候,在原有的數據庫壓力測試軟件上增加了一個統一的入口,結果在測試的時候,發現測試壓力這部分功能正常完成了,但是輸出Java線程檢測結果這塊出問題了,軟件原來設計的時候把測試數據的統計信息保存在一張表里面,通過PL/SQL查詢統計信息保存的表,發現統計信息都正常保存了,但是調用輸出結果的模塊的時候總是查詢出空記錄,換成其他表名查詢就沒有問題 ,非常郁悶
剛開始猜測:
1. 表名是關鍵字
2. 表不在當前用戶下
接著通過實驗一一排除了這兩個可能性。
最后無意中把之前多Java線程檢測數據庫壓力的程序入口注釋掉后,JDBC程序正常連接數據庫查詢統計信息了;這時候才恍然大悟,在多線程測試數據庫壓力的程序結尾忘記檢測一下線程是否都完成了,都完成了才能順序執行輸出統計信息這個程序。如果沒有檢測線程是否都完成了,那么java很可能在啟動多線程測試壓力的同時,也已經啟動了輸出統計信息的程序,那么在測試還沒有完成的情況下統計信息還沒有收集完成(還沒進數據庫呢)當然查詢的結果永遠都是空。
記錄一下:Java線程檢測是否都已經完成的語句:
thread_instance.join();
最后總結如下:出問題的地方不一定就是表現出錯誤的地方,一定要細心。