這篇博客主要是總結(jié)一下java中的進(jìn)程與線程的相關(guān)知識(shí)。
1.什么是進(jìn)程
程序是指令和數(shù)據(jù)的有序集合,其本身沒(méi)有任何運(yùn)行的含義,是一個(gè)靜態(tài)的概念。而進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過(guò)程,它是一個(gè)動(dòng)態(tài)的概念。進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序,一個(gè)實(shí)體,每一個(gè)進(jìn)程都有它自己的地址空間。
2.進(jìn)程的狀態(tài)
進(jìn)程執(zhí)行時(shí)間的間斷性,決定了進(jìn)程可以有多種狀態(tài)。事實(shí)上,運(yùn)行中的進(jìn)程具有一下三種基本狀態(tài):
(1)就緒狀態(tài)(Ready) (2)運(yùn)行狀態(tài)(Running) (3)阻塞狀態(tài)(Blocked)
3.線程
線程實(shí)際上是在進(jìn)程的基礎(chǔ)之上的進(jìn)一步劃分,一個(gè)進(jìn)程啟動(dòng)之后,里面的若干程序又可以劃分若干個(gè)進(jìn)程。 線程:是進(jìn)程中的一個(gè)執(zhí)行路徑,共享一個(gè)內(nèi)存單元,線程之間可以自由切換,并發(fā)執(zhí)行,一個(gè)進(jìn)程最少有一個(gè)進(jìn)程(單線程程序)
4.線程的兩種實(shí)現(xiàn)方式
在java中如果想要實(shí)現(xiàn)多線程操作,有兩種實(shí)現(xiàn)方法: (1)一種是繼承Thread類 (2)另外一種是實(shí)現(xiàn)Runnable接口
如果使用 線程對(duì)象.run() 方法則是在主方法中調(diào)用run方法,并不是開(kāi)辟一個(gè)新的線程,若想要開(kāi)辟一個(gè)新的線程則要使用線程對(duì)象的start方法
public class ThreadDemo { public static void main(String args[]) { //線程1 MyThread myThread=new MyThread(); myThread.start(); //主線程 for(int i=0;i<20;i++) { System.out.上述兩種方法建議使用第二種方法,因?yàn)樵贘ava中只支持單繼承,如果我們繼承了Thread類,則就無(wú)法繼承其他的類,而第二種方法,我們實(shí)現(xiàn)了Runnable接口,我們也可以再繼承其他類,便于功能就行拓展。新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注