首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

并行运作

2012-08-07 
并行运行并行运行open Systemopen System.Threading.TasksParallel.For (0, 100,fun i -printfn Startin

并行运行
并行运行

open System
open System.Threading.Tasks

Parallel.For (0, 100,
                fun i ->
                  printfn "Starting %d ..." i
                  System.Threading.Thread.Sleep (100*i%8)
                  printfn "Finished %d ..." i
              )

输出结果:
Starting 0 ...
Starting 50 ...
Finished 0 ...
Starting 1 ...
Finished 50 ...
Starting 51 ...
Finished 1 ...
Starting 2 ...
Finished 2 ...
Starting 3 ...
Finished 51 ...
......


let prog i =
  async {
    printfn "Starting %d ..." i
    do! Async.Sleep (100%(i+1)*10)
    printfn "Finished %d ..." i
    return 1
  }

let result =
  [0..99]
  |> Seq.map prog
  |> Async.Parallel
  |> Async.StartAsTask


输出结果:
...
Starting 98 ...
Starting 99 ...
Finished 99 ...
Finished 49 ...
Finished 32 ...
Finished 24 ...
Finished 23 ...
Finished 19 ...
Finished 18 ...
Finished 15 ...
Finished 13 ...
Finished 11 ...
....

热点排行