多執行緒初步理解

2021-08-21 02:38:47 字數 426 閱讀 8448

題目:

某銀行有至多三個視窗提供服務。

該銀行每天至多服務100人次;

初始時,只有乙個視窗開放,如果等待人數超過兩人(包含正在辦理業務的人),才開放下乙個視窗。

這個小小的問題裡面包含幾個關鍵點:

顯然三個視窗可以用三個執行緒來做,那麼如何得到三個執行緒服務的總人數?涉及到多執行緒資料同步問題。

100人次可能不是一次來的。有可能分幾次來,那麼某乙個或幾個視窗會處於等待狀態,涉及到執行緒等待和喚醒問題。

初始並不是一次出來三個視窗,而是根據佇列中等待人數多少。那麼考慮到擴充套件性,我要增加到四個或n個視窗呢?涉及到動態建立執行緒問題。

當服務總人數達到100人次,不可能直接讓三個視窗結束任務,總得讓人家把業務辦完吧?涉及到多執行緒之間等待問題。

當服務總人數達到100人次,並且三個視窗都結束了任務,如何關閉所有執行緒?

初步理解多執行緒程式設計

1.繼承thread類,重寫run 方法thread本質上也是實現了runnable介面的乙個例項。需要注意的是呼叫start 方法後並不是立即地執行多執行緒的 而是使該執行緒變為可執行態,什麼時候執行多執行緒 是由作業系統決定的。以下是其 主要步驟 1 定義thread類的子類,並重寫該類的run...

Java多執行緒 多執行緒的初步認識理解以及入門使用

如下 繼承thread類 package com.demo public class threaddemo1 extends thread override public void run 實現runnable介面 當我們進行執行後就會發現,有時候run 方法中的執行的會比較晚,說明,在多執行緒中 ...

多執行緒 理解多執行緒(一)

程序 程序是cpu分配資源的基本單位 執行緒 執行緒是cpu排程的基本單位 資源分配給程序,所有執行緒共享該程序的資源 當執行緒數大於cpu的數量,會出現時間片的輪詢。cpu時間片是直接分配給執行緒的,執行緒拿到cpu時間片就能執行了 cpu時間片不是先分給程序然後再由程序分給程序下的執行緒的。所有...