我有以下虚拟代码来测试F#中的TPL.(Mono 4.5,Xamarin工作室,四核MacBook Pro)
令我惊讶的是,所有进程都在同一个线程上完成.根本就没有并行性.
open System
open System.Threading
open System.Threading.Tasks
let doWork (num:int) (taskId:int) : unit =
for i in 1 .. num do
Thread.Sleep(10)
for j in 1 .. 1000 do
()
Console.WriteLine(String.Format("Task {0} loop: {1}, thread id {2}", taskId, i, Thread.CurrentThread.ManagedThreadId))
[<EntryPoint>]
let main argv =
let t2 = Task.Factory.StartNew(fun() -> doWork 10 2)
//printfn "launched t2"
Console.WriteLine("launched t2")
let t1 = Task.Factory.StartNew(fun() -> doWork 8 1)
Console.WriteLine("launched t1")
let t3 = Task.Factory.StartNew(fun() -> doWork 10 3)
Console.WriteLine("launched …Run Code Online (Sandbox Code Playgroud) 你能解释一下我之间的区别吗?
<video src=""> </video>
Run Code Online (Sandbox Code Playgroud)
和
<video><source> </source></video>
Run Code Online (Sandbox Code Playgroud)
?