日期:2014-05-18  浏览次数:21077 次

新手请教:开两个线程,是不是就两个任务可以让他们完全同步开始,齐头并进,而不是顺序执行?
我有两个都是很长的循环过程,我想让他们完全同时开始,同时执行.不要等一个执行完了再另一个或者一个执行到半途再另一个.
请教下如果我像下面这样创建两个线程的话,它们会还是顺序执行的?只有等t执行完了,t2才会开始?因为代码上,开辟线程上也是顺序先后?还是说是完全同时间开始?
VB.NET code
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim t As Thread
t = New Thread(AddressOf 长循环1)
t.Start()

Dim t2 As Thread
t2 = New Thread(AddressOf 长循环2)
t2.Start()
end sub

另外,线程池是不是也可以开多个的?像下面这样,它的效果是不是也可以同时开始? 如果是的话,用下面这个好还是上面这个好呢?
VB.NET code
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ThreadPool.QueueUserWorkItem(AddressOf 长循环1)
        ThreadPool.QueueUserWorkItem(AddressOf 长循环2)
end sub

不好意思,vb.net那边太冷清了.发在这里.
多谢!!

------解决方案--------------------
如果你只有一个cpu,线程只能是随机的执行,不可能并行,只有你的cpu数量大于你的线程数量,才有可能并行