1. 程式人生 > >Java基礎之執行緒那些事

Java基礎之執行緒那些事

回顧

我們在前幾篇講解了java集合的相關知識

本章開始主要介紹下多執行緒程式設計,集合的其他實現,後續會陸續放出

從CPU說起

上圖取自某東,標註了三款的cpu的引數,我們只需關注cpu核心這欄,這裡三款cpu都是6核12執行緒, 請看下圖

矩形盒子代表的是一個cpu 而裡面有6個核心,理論上一個核心在某個時間節點只能處理一個任務,但現在隨著技術的發達 一個核心可以處理多個執行緒任務,好比原來的單核是條單車道,6核12執行緒就是6條雙車道,最多時可同時處理12個執行緒任務。

執行緒與程序

上面提到執行緒任務,那什麼是執行緒呢?說到執行緒就必須提到程序

程序(Process)是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。

開啟winwows工作管理員 可以這個運行了多個程式,qq就是一個程序,而程序是執行緒的容器,

一個防毒軟體可以漏洞修復和垃圾清理同時進行 他們就分別是獨立的執行緒 而且在一個程序內

那麼我們看看執行緒的含義:

執行緒是程式中一個單一的順序控制流程。程序內有一個相對獨立的、可排程的執行單元,是系統獨立排程和分派CPU的基本單位指令執行時的程式的排程單位。在單個程式中同時執行多個執行緒完成不同的工作,稱為多執行緒。

單核cpu理論上在一個時間節點上只能處理一個執行緒任務,但是現在多核多執行緒技術加時間片輪轉排程讓我們能邊聽歌邊寫程式碼。

多執行緒

我們假設一個賣票的視窗,總共有100張票 分三張視窗售賣,那此時就需要利用多執行緒技術。

這個整體賣票的過程可以看做是一個程序在執行 而三個視窗分別執行即三個執行緒的執行。

總結

執行緒是計算機抽象的一個相當重要的基礎概念,我們需要知道

  • 執行緒是程式執行流的最小單元
  • 程序是執行緒的容器
  • 一個程序內可以有多個執行緒
  • 多核多執行緒技術能讓多個執行緒並行處理

在下一遍我們將利用java程式設計來實現三個視窗賣票的程式,盡請期待~~~

喜歡本文的朋友們,歡迎長按下圖關注訂閱號我的程式設計筆記,收看更多精彩內容