摘要:創(chuàng)建并使用線程兩種方式,創(chuàng)建新的線程實現(xiàn)接口,接口定義了一個方法。注意,兩個例子均調(diào)用了去創(chuàng)建一個新的線程這兩種方式,該選哪一種實現(xiàn)接口,是常用的創(chuàng)建新線程的方式。缺點是,無法繼承其它類建議使用第一種。
創(chuàng)建并使用線程
兩種方式,創(chuàng)建新的線程:
實現(xiàn) Runnable 接口,Runnable 接口定義了一個方法:run。run 方法中的代碼,將在創(chuàng)建的線程中執(zhí)行。實現(xiàn)了 Runnable 接口的對象,作為 Thread 構(gòu)造方法的參數(shù)。
public class HelloRunnable implements Runnable { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new Thread(new HelloRunnable())).start(); } }
繼承 Thread。Thread 類實現(xiàn)了 Runnable 接口,盡管它的 run 方法內(nèi)什么也沒有。一個類可以繼承自 Thread,并重寫 run 方法。
public class HelloThread extends Thread { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new HelloThread()).start(); } }
注意,兩個例子均調(diào)用了 Thread.start 去創(chuàng)建一個新的線程
這兩種方式,該選哪一種?實現(xiàn) Runnable 接口,是常用的創(chuàng)建新線程的方式。
實現(xiàn) Runnable 接口的類,可以繼承自其它的類,而不僅僅是 Thread。更加靈活。
適用于一些高階線程管理的 APIs
繼承 Thread,用起來似乎更加簡單一點。缺點是,無法繼承其它類 (java)
建議使用第一種。
參考資料Defining and Starting a Thread
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/65197.html
摘要:多線程和并發(fā)問題是技術(shù)面試中面試官比較喜歡問的問題之一。線程可以被稱為輕量級進程。一個守護線程是在后臺執(zhí)行并且不會阻止終止的線程。其他的線程狀態(tài)還有,和。上下文切換是多任務操作系統(tǒng)和多線程環(huán)境的基本特征。 多線程和并發(fā)問題是 Java 技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,但是你仍然應該牢固的掌握Java多線程基礎(chǔ)知識來對應日后碰到的問題。(...
摘要:線程可以被稱為輕量級進程。一個守護線程是在后臺執(zhí)行并且不會阻止終止的線程。其他的線程狀態(tài)還有,和。上下文切換是多任務操作系統(tǒng)和多線程環(huán)境的基本特征。在的線程中并沒有可供任何對象使用的鎖和同步器。 原文:Java Multi-Threading and Concurrency Interview Questions with Answers 翻譯:并發(fā)編程網(wǎng) - 鄭旭東 校對:方騰飛 多...
摘要:一個進程可以擁有多個線程,一個線程必須有一個父進程。線程是獨立運行的,它并不知道進程中是否還有其他的線程存在。線程的調(diào)度和管理由進程本身負責完成。因此多線程實現(xiàn)多任務并發(fā)比多線程的效率高。 ??一個任務通常就是一個程序,每個運行中的程序就是一個進程。當一個程序運行時,內(nèi)部可能包含了多個順序執(zhí)行流,每個順序執(zhí)行流就是一個線程。 進程 定義: ??當一個程序進入內(nèi)存運行時,即變成一個進程。...
摘要:線程池為了節(jié)省系統(tǒng)在多線程并發(fā)時不斷創(chuàng)建和銷毀線程帶來的額外開銷,就需要引入線程池。其中表示一個線程池。表示一個線程工廠,通過可以取得一個特定功能的線程池。創(chuàng)建固定數(shù)目線程的線程池。默認情況下,在創(chuàng)建了線程池后,線程池中的線程數(shù)為。 【線程池 為了節(jié)省系統(tǒng)在多線程并發(fā)時不斷創(chuàng)建和銷毀線程帶來的額外開銷,就需要引入線程池。線程池的基本功能就是進行線程的復用。當系統(tǒng)接受一個提交的任務時,并...
摘要:線程線程是進程中的一個實體,作為系統(tǒng)調(diào)度和分派的基本單位。下的線程看作輕量級進程。因此,使用的目的是讓相同優(yōu)先級的線程之間能適當?shù)妮嗈D(zhuǎn)執(zhí)行。需要注意的是,是線程自己從內(nèi)部拋出的,并不是方法拋出的。 本文及后續(xù)相關(guān)文章梳理一下關(guān)于多線程和同步鎖的知識,平時只是應用層面的了解,由于最近面試總是問一些原理性的知識,雖說比較反感這種理論派,但是為了生計也必須掌握一番。(PS:并不是說掌握原理不...
閱讀 3514·2023-04-25 17:35
閱讀 2588·2021-11-24 09:39
閱讀 2525·2021-10-18 13:32
閱讀 3409·2021-10-11 10:58
閱讀 1630·2021-09-26 09:55
閱讀 6134·2021-09-22 15:47
閱讀 959·2021-08-26 14:15
閱讀 3466·2019-08-30 15:55