1. 程式人生 > 實用技巧 >JAVA學習日報 8.13

JAVA學習日報 8.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迴圈慢,如果是載入時間長一點的話,可以說兩個完全是同時開始的。

(當然我一開始真是沒搞明白這個奇葩東西)