第41期Java面試題:程序、進程、線程的關係,線程創建及生命週期

1、程序、進程、線程之間的關係

程序是一段靜態的代碼,是應用軟件執行的藍本。

進程是程序一次動態執行的過程,它對應了從代碼加載、執行完畢的一個完整過程,這也是進程開始到消亡的過程。

線程是進程中獨立、可調度的執行單元,是執行中最小單位。

一個程序一般是一個進程,但可以一個程序中有多個進程。

一個進程中可以有多個線程,但只有一個主線程。

Java應用程序中默認的主線程是main方法,如果main方法中創建了其他線程,JVM就會執行其他的線程。

2、創建線程有幾種方式,分別是什麼?

創建線程有三種方式:

1)是繼承Thread類,創建格式如下:

Thread thread = new Thread();

2)是實現Runnable接口,創建格式如下:

Thread thread = new Thread(new Runnable());

其實Thread類實現了Runnable接口

3)通過線程池方式,獲取線程

package com.myjava.thread;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class ThreadPool {

private static int POOL_NUM = 10;

public static void main(String[] agrs){

ExecutorService executorService = Executors.newFixedThreadPool(5);

for (int i = 0; i < POOL_NUM; i++) {

RunnableThread thread = new RunnableThread();

executorService.execute(thread);

}

}

}

class RunnableThread implements Runnable{

private int THREAD_NUM = 10;

public void run() {

for (int i = 0; i

System.out.println("線程"+Thread.currentThread()+i);

}

}

}

3、線程的生命週期

創建--運行--中斷--死亡

創建:線程構造

運行:調用start()方法,進入run()方法

中斷:sleep()、wait()

死亡:執行完run()方法或強制run()方法結束,線程死亡

第41期Java面試題:程序、進程、線程的關係,線程創建及生命週期


分享到:


相關文章: