大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 線程通信的幾種方式

線程通信的幾種方式

更新時間:2022-10-11 09:39:51 來源:動力節點 瀏覽1680次

通信范式

線程有兩種主要的通信方式。共享內存和消息傳遞。

共享內存

所有線程都可以訪問相同的內存。他們正在處理不同的數據塊,但如果需要,他們可以使用其他人的結果。線程的執行需要同步,尤其是當進行下一步計算時,一個線程需要來自另一個線程的數據。

消息傳遞

在這種情況下,每個線程都可以發送和接收消息。他們正在使用一個隊列來存儲消息,直到它被處理。如果我們想獲得線程之間的雙向通信,建議使用兩個隊列。隊列的長度應根據工作量而定。

工作平衡示例

假設您有 100 個線程(T0、T1、T2、...、T99),我們想要檢測 [1, 100 000] 范圍內的素數。我該如何解決這個問題?

首先,我應該嘗試創建一個函數來告訴我一個數字是否是素數。

bool isPrime(int n) { 
    bool prime = true; 
    如果(n == 0 || n == 1){
        素數= 假;
    } 
    else { 
        for (int i = 2; i <= n / 2; ++i) { 
            if (n % i == 0) { 
                prime = false; 
                休息; 
            } 
        } 
    }
    返回素數;
}

工作平衡示例

假設您有 100 個線程(T0、T1、T2、...、T99),我們想要檢測 [1, 100 000] 范圍內的素數。我該如何解決這個問題?

首先,我應該嘗試創建一個函數來告訴我一個數字是否是素數。

我們如何將 1 到 100 000 的數字映射到我們的 100 個線程?

每個線程應該解決一大塊 1000 個數字。

映射 1:T0 計算來自 [1, 1000]、T1 - [1001, 2000] 等的數字。

映射2:我們按順序給每個線程一個數字。在第一次迭代中,來自 [1, 100] 的數字,第二次迭代 [101, 200] 等。線程 T1 將計算 [1, 101, 201, ...]。

什么映射比較好?

第二個映射更好,因為所有線程的數字都來自相同的值范圍,并且工作負載是平衡的。在第一種情況下,T0 要做的事情較少,來自 [1,1000] 的數字和 T99 的數字很大 [90 001, 100 000]。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 91长腿女神清纯大又嫩在线 | 国产亚洲精品国产一区 | 亚洲视频精选 | 久久只有精品视频 | 国产亚洲福利精品一区 | 日本不卡在线视频高清免费 | 色噜噜狠狠一区二区三区 | 日韩天堂 | 亚洲综合在线成人一区 | 亚洲高清中文字幕综合网 | 午夜国产精品影院在线观看 | 99热久久这里只精品国产ww | 免费看一级a一片毛片 | 国产在线99 | 欧美日韩国产58香蕉在线视频 | 国产高清看片日韩欧美久久 | 色综合天天综合网国产人 | 国产91在线 | 亚洲 | 午夜精品九九九九99蜜桃 | 日日摸夜夜添夜夜添97 | 欧美6699在线视频免费 | 国产乱码一区二区三区 | 精品久久国产老人久久综合 | 国产剧情一区二区三区 | 日韩欧美亚洲 | 日韩毛片欧美一级国产毛片 | 成人午夜网站 | 精品日本久久久久久久久久 | 手机免费看一级片 | 天天插天天干天天射 | 国产高清在线精品一区二区 | 不卡免费在线视频 | 国产精品99久久久久久小说 | 一级特黄aa大片一又好看 | 五月激情综合网 | a毛片免费观看完整 | 一本到中文字幕高清不卡在线 | 一级国产20岁美女毛片 | ova熟肉动漫在线 | 一级片视频免费观看 | 国产综合亚洲精品一区 |