C#多线程JOIN方法初探
来源:互联网 发布:mac os x ei capitan 编辑:程序博客网 时间:2024/05/16 23:33
Thread类的Join()方法能够将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,线程A将插入线程B之前,直到线程A执行完毕后,才会继续执行线程B。
试一试:线程的插入
//《C#初学课堂》
//注意添加命名空间
using System.Threading;
static void Main(string[] args)
{
//线程A
Thread ThreadA = new Thread(delegate()
{
for (int i = 0; i <= 100000000; i++)
{
if (i % 1000000 == 0)
{
Console.Write('A');
}
}
});
//线程B
Thread ThreadB = new Thread(delegate()
{
for (int i = 0; i <= 50000000; i++)
{
if (i % 1000000 == 0)
{
Console.Write('B');
}
}
//在这里插入线程A
ThreadA.Join();
for (int i = 0; i <= 50000000; i++)
{
if (i % 1000000 == 0)
{
Console.Write('b');
}
}
});
//启动线程
ThreadA.Start();
ThreadB.Start();
}
运行结果如下,你能分析清楚为什么吗?
由运行结果可以看出,一开始两个线程交替进行,当线程B执行到语句“ThreadA.Join()”时,线程A被插入到线程B之前,两个线程合并到一起,变为顺序执行,直到执行完线程A中的所有语句,才去执行线程B中剩余的语句。
换句话说,当我们在线程B中调用ThreadA.Join()时,该方法只有在线程ThreadA执行完毕之后才会返回。Join()函数还可以接受一个表示毫秒数的参数,当达到指定时间后,如果线程A还没运行完毕,那么Join函数将返回,这时线程A和线程B再次处于交替运行状态中。
- C#多线程JOIN方法初探
- C#多线程JOIN方法初探
- Java多线程初探——yield()方法与join()方法
- C# 多线程 Join
- 初探C#多线程编程
- C#多线程初探
- java多线程-join方法
- 多线程之Join方法
- 多线程 -- join()方法
- 多线程中的join方法
- 多线程(join方法)
- 【多线程-Join()方法】
- 多线程之join方法
- 多线程的join()方法
- 多线程中的Join()方法
- 多线程的join方法
- 多线程join方法解析
- Java 多线程join方法
- NetBeans IDE 6.9 Beta 发布
- Sybase ASE学习总结(序)
- 程序拨号及检测何时挂断的解决方案
- 开始?
- 2010年4月23日(新公司入职,第三周星期五)
- C#多线程JOIN方法初探
- 背单词的软件,让记单词不再成为难事
- Haar分类器 ObjectMarker程序源代码
- 2010.4月编程语言排行
- 使用Qt编写服务器端程序(包括Http传输服务器端)的方法
- C#中DllImport用法和路径问题
- .And
- shell之数组定义
- 自己遇到的一个Hibernate之问题:Could not parse mapping document