2011-08-19 84 views
4

沒有太多比標題說。如果我這樣做:Mono C#編譯器在編譯時是否執行任何並行循環?

int[] arr = new int[(long)Math.Pow(2, 25)]; 
    for (int j = 0; j < arr.Length; j++) 
    arr[j] = j; 

將編譯器以任何方式並行化此代碼?我問,因爲我看到4個核心中有3個在運行時點亮。

謝謝。

+0

使用率的總和是否超過100%?除非線程對特定內核有某種親和力,否則沒有任何內容可以保持單個線程從核心跳轉到核心。 – recursive

+0

好點,@遞歸。它的確超過了100%,但這可能只是其他一些能夠在兩者之間獲得一些運行時間的任務,比如「top」本身。 –

回答

3

簡單地說,默認情況下,我相信不,不。因爲MS.Net沒有。

這並不是說.Net並未在所有核心上發射,但是您發佈的片段應該是單線程操作。