package demo;/** * 子執行緒迴圈5次,主線程迴圈10次。依次交替。整個交替迴圈3次
* */
public class threadtest
static void init()
}}).start();
new thread(new runnable()
}}).start();
}}
print:
package demo;/** * 兩個方法之間互斥 (方法裡面完整執行完),用 sflag實現 開關控制 兩個方法的切換
* */
public class print catch (interruptedexception e)
} for(int i=1;i<=num;i++)sflag = false;
this.notifyall();}
public synchronized void mainprint(int num) catch (interruptedexception e)
} for(int i=1;i<=num;i++)sflag = true;
this.notifyall();}
}
主線程和子執行緒
子執行緒通過 handlerthread的thread.getlooper 繫結,在主線程的handler的handlermessage中呼叫threadhandler.sendmessagedelay msg,1000 向子執行緒傳送訊息。在子執行緒中通過handler.sendmessagede...
主線程和子執行緒
主線程負責管理由它建立的子執行緒,建立 啟動 掛起 停止等。主線程通過發訊息的方式管理子執行緒,例如,給子執行緒傳送start 訊息,子執行緒啟動,子執行緒執行入口的run 方法。thread有下面兩個構造方法 thread runnable target,string name thread ru...
主線程和子執行緒總結
執行結果 從上面可以看到 如果主線程和子執行緒是並行的,雖然都是用while 1 但是倚靠 cpu的排程,主線程和子執行緒都有機會得到執行。如果要在子執行緒裡面改變主線程裡面的資料,就在 pthread create 裡面的最後 乙個引數使用傳位址呼叫 void c,否則使用傳值呼叫 void c ...