專案需求:安卓要求連線雲資料庫必須重開一個子執行緒,於是涉及到子執行緒中查詢資料的返回。
程式碼:
private void findCourse() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
MySQLUtil mySQLUtil = new MySQLUtil();
mySQLUtil.getConnection("cce-18");
course = mySQLUtil.getCourseName("course_info_2018_2019");
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
在findCourse中,我們新開了一個子執行緒,其中course是我們需要返回的資料。如果我們正常執行會發現:在我們需要使用course時它還是一個null,因為主執行緒同時也在進行,子執行緒還沒執行到對course初始化這句話時,我們就在使用course了,因此我們必須等子執行緒執行結束course有值之後才繼續執行主執行緒。有兩個解決辦法: