多线程问题
怎么把一个for 循环编程多线程来做 来提高速度 而且 for循环中的要开启多线程的方法 还需要返回值 --------------------编程问答-------------------- 线程是按任务来的,任务可以具体为方法,为线程执行方法即可。 --------------------编程问答--------------------
for(int i=0; i< num ;i++)
{
Thread s=new Thread(method);
s.Start();
Thread.Sleep(0); //for 中注意释放时间片
}
--------------------编程问答-------------------- 看你的要求怎么有点并行编程的意思
在4.0里面已经支持。 --------------------编程问答-------------------- 3楼的就可以并行操作了,需要返回值可以设全局变量,记得lock就行了 --------------------编程问答-------------------- [code=F#]open System.Threading
let printWithThread str =
printfn "[ThreadId = %d] %s" Thread.CurrentThread.ManagedThreadId str
let evals =
let z = 4.0
[ async { do printWithThread "Computing z*z\n"
return z * z };
async { do printWithThread "Computing sin(z)\n"
return (sin z) };
async { do printWithThread "Computing log(z)\n"
return (log z) } ]
let awr =
async { let! vs = Async.Parallel evals
do printWithThread "Computing v1+v2+v3\n"
return (Array.fold(fun a b -> a + b) 0.0 vs) }
let R = Async.RunSynchronously awr
printf "Result = %f\n" R[/code] --------------------编程问答-------------------- CSDN还不能识别F#,呵呵...
open System.Threading--------------------编程问答-------------------- 恩,3颗星就是厉害,C#版非要发F#的代码。赶明我复制下来发到JAVA版区显摆显摆。
let printWithThread str =
printfn "[ThreadId = %d] %s" Thread.CurrentThread.ManagedThreadId str
let evals =
let z = 4.0
[ async { do printWithThread "Computing z*z\n"
return z * z };
async { do printWithThread "Computing sin(z)\n"
return (sin z) };
async { do printWithThread "Computing log(z)\n"
return (log z) } ]
let awr =
async { let! vs = Async.Parallel evals
do printWithThread "Computing v1+v2+v3\n"
return (Array.fold(fun a b -> a + b) 0.0 vs) }
let R = Async.RunSynchronously awr
printf "Result = %f\n" R
补充:.NET技术 , C#