現在的操作系統是多任務操作系統。多線程是實現多任務的壹種方式。
進程是指壹個內存中運行的應用程序,每個進程都有自己獨立的壹塊內存空間,壹個進程中可以啟動多個線程。比如在Windows系統中,壹個運行的exe就是壹個進程。
線程是指進程中的壹個執行流程,壹個進程中可以運行多個線程。比如java.exe進程中可以運行很多線程。線程總是屬於某個進程,進程中的多個線程***享進程的內存。
“同時”執行是人的感覺,在線程之間實際上輪換執行。
二、Java中的線程
在Java中,“線程”指兩件不同的事情:
1、java.lang.Thread類的壹個實例;
2、線程的執行。
使用java.lang.Thread類或者java.lang.Runnable接口編寫代碼來定義、實例化和啟動新線程。
壹個Thread類實例只是壹個對象,像Java中的任何其他對象壹樣,具有變量和方法,生死於堆上。
Java中,每個線程都有壹個調用棧,即使不在程序中創建任何新的線程,線程也在後臺運行著。
壹個Java應用總是從main()方法開始運行,mian()方法運行在壹個線程內,它被稱為主線程。
壹旦創建壹個新的線程,就產生壹個新的調用棧。
線程總體分兩類:用戶線程和守候線程。
當所有用戶線程執行完畢的時候,JVM自動關閉。但是守候線程卻不獨立於JVM,守候線程壹般是由操作系統或者用戶自己創建的