1. 程式人生 > >多線程基礎知識簡介

多線程基礎知識簡介

一段 cond add sleep star 一、基本概念 運行 多線程基礎 技術

一、基本概念:程序、進程、線程

程序(program):是為完成特定任務、用某種預研編寫的一組指令的集合。即指一段靜態的代碼,靜態對象

進程(process):是程序的依次執行過程,或是正在運行的一個程序。動態過程:有它自身的產生、存在和消亡的過程。

  • 如:運行中的QQ,運行中的MP3播放器;
  • 程序是靜態的,進程是動態的。

線程(Thread):進程可進一步細化為線程,是一個程序內部的一條執行路徑。

  • 若一個程序可同一時間執行多個線程,就是支持多線程的。

二、進程與多線程

技術分享圖片

三、創建並啟動線程

(1)默認JVM會有一個主線程

技術分享圖片

(2)模擬多線程讀寫數據的過程

import java.util.concurrent.TimeUnit;

public class TryConcurrent {

    public static void main(String[] args) throws InterruptedException {

        new Thread(()->{
            readDataFromDataBase();
        }, "read thread").start();

        new Thread(()->{
            writeDataToFile();
        }, 
"read thread").start(); } /** * 模擬數據庫讀取數據的過程 */ public static void readDataFromDataBase(){ try { System.out.println("start read data from database"); TimeUnit.SECONDS.sleep(10); System.out.println("end read data from database"); }
catch (InterruptedException e) { e.printStackTrace(); } System.out.println("read date finish"); } /** * 模擬向磁盤寫數據的過程 */ public static void writeDataToFile(){ try { System.out.println("start write data to file"); TimeUnit.SECONDS.sleep(10); System.out.println("end write data to file"); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("write date finish"); } }

  

代碼運行結果:

技術分享圖片

多線程基礎知識簡介