JAVA學習日報 8.13
阿新 • • 發佈:2020-08-13
上手試驗了一下多執行緒程式,但這個與我想象中略有不同,因為for迴圈實際上很快,當我按照書上的函式寫出這種程式時:
class newone extends Thread { private int i = 0; public void run() { for (i=0;i<3;i++) { System.out.println("輔執行緒第"+(i+1)+"次迴圈"); } } } public class Happy { public static void main(String[] args) {for (int i=0;i<3;i++) { System.out.println("主執行緒第"+(i+1)+"次迴圈"); Thread first = new newone (); if(i==1) first.start(); } } }
這個的執行結果長這樣:
按理講我在i=1時就開始了新程序,但執行結果卻像是最後才生效的
之後我將主執行緒迴圈次數改成了100.得到如下的執行結果:
可以看到輔執行緒慢了主執行緒8拍(姑且這麼說),執行速度是類似的
後來查找了相關資料,這種現象可能是由於輔助執行緒開始處理要較for迴圈慢,如果是載入時間長一點的話,可以說兩個完全是同時開始的。
(當然我一開始真是沒搞明白這個奇葩東西)