當new 乙個thread的時候,就是在主線程的基礎上再開乙個子執行緒,cpu一會兒給主線程用,一會兒給子執行緒用,所以多執行緒會降低工作效率
1:thread 自己實現自己的run方法
public static voidmain(string args)throwsinterruptedexceptioncatch(interruptedexception e)2:thread 與runnabe結合system.out.println("thread :"+ thread.currentthread().getname());}}
}.start();
}
public static voidmain(string args)throwsinterruptedexceptioncatch(interruptedexception e)synchronized能夠為**塊,方法加上同步鎖,保證資料的一致性,防止在多執行緒裡面出現資料被修改或者輸出不一致等情況system.out.println("runnable :"+ thread.currentthread().getname());}}
}).start();
}
1:不加synchronized出現的後果
public static voidmain(string args)執行這段**會發現,輸出結果中,linzeyang,wangyali,這個完整的字段會被多次打斷,出現其他形式的字串,threadtest方法加上synchronized關鍵字之後就不會被打斷的情況private voidinit()catch(interruptedexception e)
outer.threadtest("linzeyang");}}
}).start();
newthread(newrunnable()catch(interruptedexception e)
outer.threadtest("wangyali");}}
}).start();
}classbook
system.out.println();}}
}
2:加synchronized出現的結果
public static voidmain(string args)wait和notity能實現執行緒之間的通訊,使得現場在同步鎖的情況下,可以中斷本身的操作,喚醒其他執行緒的等待狀態,變為可執行狀態private voidinit()catch(interruptedexception e)
outer.threadtest("linzeyang");}}
}).start();
newthread(newrunnable()catch(interruptedexception e) }}
}).start();
}classbook
system.out.println();}}
1:例項應用
子執行緒迴圈10次,主線程迴圈100次,接著子執行緒再迴圈十次,主線程再迴圈100次,如此迴圈50次
public static voidmain(string args) }}通過wait和notity來實現主線程與子執行緒之間的切換).start();
//主線程
for(inti=1;i<=50;i++)
}}classbusinesscatch(interruptedexception e)
}for(intj=1;j<=10;j++)
bshouldsub=false;
//執行完畢,喚醒主線程
this.notify();
}//主現場迴圈100次
public synchronized voidmain(inti)catch(interruptedexception e)
}for(intj=1;j<=100;j++)
bshouldsub=true;
//執行完畢,喚醒子執行緒
this.notify();
}
多執行緒概念與Thread類
首先要了解什麼是程序,乙個程式正在執行,並且有獨立的功能,這叫做程序。執行緒是指程序中的乙個執行流程,乙個程序中可以執行多個執行緒。執行緒 執行緒是程序中的乙個執行單元,負責當前程序中程式的執行,乙個程序至少有乙個執行緒,乙個程序也可以有多個執行緒,多個執行緒同時執行指的是來回高速切換 程式執行的原...
多執行緒 Thread
如果從另外乙個執行緒操作windows窗體上的控制項,就會與主線程產生競爭,造成不可預料的後果,甚至死鎖。因此,windows gui程式設計有乙個規則 只能通過建立控制項的執行緒來操作控制項的資料!實現方法 要從執行緒外操作windows控制項,那麼就要使用invoke或begininvoke方法...
Thread執行緒類
posted on 2011 05 03 10 45 明天陪你看海 閱讀 123 編輯收藏 說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙...