并發(fā)和并行:
并發(fā)是指在一段時間內(nèi)宏觀上有多個程序同時運行蚕礼,但實際上每個程序只是在CPU分配的時間片內(nèi)運行乌妙,每一時刻也只能由一道程序執(zhí)行忧风。
并行是指兩個或多個時間在同一時刻 發(fā)生,只有在多CPU環(huán)境才有可能發(fā)生吃警。
java多線程
通常在開發(fā)中結合ExecutorService使用糕篇,將任務的提交與執(zhí)行解耦開,同時也更好地利用Executor提供的各種特性
- 繼承Thread類酌心,重寫run()方法拌消,在run()方法里編寫我們要做的事情,調(diào)用start()方法啟動線程
- 實現(xiàn)Runnable接口安券,實現(xiàn)run()方法,在run()方法里編寫我們要做的事情墩崩,調(diào)用start()方法啟動線程.
- 實現(xiàn)Callable接口,Callable是泛型參數(shù)接口侯勉,并能返回線程的執(zhí)行結果鹦筹,當有異常時拋出異常
總結
相對于繼承Thread類來創(chuàng)建線程,使用Runnable可以讓實現(xiàn)類同時實現(xiàn)多個接口(java單繼承特性)址貌,相對于Callable及Future铐拐,Runnable方法并不返回任務執(zhí)行結果也不能拋出異常