C Parallel 多執行緒併發

2022-06-17 08:12:10 字數 2043 閱讀 3246

parallel併發執行多個任務 多執行緒的,主線程會參與計算---阻塞介面等於taskwaitall+主線程計算

常用方法

1、invoke  盡可能並行執行提供的每個操作

1             console.writeline("

***************parallel.invoke start******************");

2parallel.invoke(

3 () => console.writeline("

action0"),

4 () => console.writeline("

action1"),

5 () => console.writeline("

action2"),

6 () => console.writeline("

action3"),

7 () => console.writeline("

action4"),

8 () => console.writeline("

action5"),

9 () => console.writeline("

action6

"));

10 console.writeline("

***************parallel.invoke end******************");

11 console.writeline();

view code

2、for  並行執行迭代,可以配置迴圈選項,可以監視和操作迴圈的狀態

1             console.writeline("

***************parallel.for start******************");

2 parallel.for(0, 5, i => console.writeline($"

parallel.for

"));

3 parallel.for(0, 5, (i,p) => console.writeline($"

parallel.for

"));

4 console.writeline("

***************parallel.for end******************");

5 console.writeline();

view code

3、foreach 並行執行迭代,可以配置迴圈選項,可以監視和操作迴圈的狀態

1

var array = new ;

2 console.writeline("

***************parallel.foreach start******************");

3 parallel.foreach(array, s =>console.writeline(s));

4 console.writeline("

***************parallel.foreach end******************");

5 console.writeline();

view code

有沒有辦法不阻塞主線程?結合task

1                 task.run(() =>

2);

view code

微軟文件:

parallel:

paralleloptions:

多執行緒併發

多執行緒併發主要有3個方面 1 同步器 主要有synchronized,reentrantlock 訊號量,門栓 countdownlatch 障柵 cyclicbarrier 交換器。2 同步容器 主要包括 對映 集 佇列 對映 concurrenthashmap,concurrentskipli...

多執行緒併發

更簡單的執行緒池 多執行緒和多程序都可以很容易的實現併發,協程通過切換上下文來充分利用cpu實現併發效果 threading模組 thread類的基本狀態和行為 屬性名和值 name none,group none,target none,args kwargs daemon none 方法 sta...

(多執行緒)多執行緒的併發安全

多執行緒併發操作同乙個資源 同步鎖 多執行緒操作的鎖必須唯一 必須搞清楚 哪些 需要同步?那些在操作共享資源的 只要包含非讀的操作,或者根據共享資源進行條件判斷的,就需要同步!同步 塊解決 package com.gc.thread 多執行緒操作共享資源 併發 執行緒安全問題 同步 鎖 相對而言效能...