.NET多线程编程(8)——Thread类的Join()思路

简介:
  [介绍说明:刚接触多线程时弄不明白Join作用查阅了 3本书都不明不白后来经过自己番试验终于弄清了Join本质大家看看我这种写法是否易懂是否真写出了Join本质多提宝贵意见]
Thread类Join思路方法能够将两个交替执行线程合并为顺序执行线程比如在线程B中了线程AJoin思路方法
        线程A将插入线程B的前直到线程A执行完毕后才会继续执行线程B
试试:线程插入
//C#初学课堂
//注意添加命名空间
using .Threading;
void Main( args)
{
//线程A
Thread ThreadA = Thread(delegate
{
for ( i = 0; i <= 100000000; i)
{
(i % 1000000 0)
{
Console.Write('A');
}
}
});
//线程B
Thread ThreadB = Thread(delegate
{       
for ( i = 0; i <= 50000000; i)
{
(i % 1000000 0)
{
Console.Write('B');
}
}
//在这里插入线程A
ThreadA.Join;
for ( i = 0; i <= 50000000; i)
{
(i % 1000000 0)
{
Console.Write('b');
}
}
});
//启动线程
ThreadA.Start;
ThreadB.Start;
}
运行结果如下你能分析清楚为什么吗?
Join思路方法" />
由运行结果可以看出开始两个线程交替进行当线程B执行到语句“ThreadA.Join”时线程A被插入到线程B的前两个线程合并到起变为顺序执行直到执行完线程A中所有语句才去执行线程B中剩余语句   
       换句话说当我们在线程B中ThreadA.Join时该思路方法只有在线程ThreadA执行完毕的后才会返回Join还可以接受个表示毫秒数参数当达到指定时间后如果线程A还没运行完毕那么Join将返回这时线程A和线程B再次处于交替运行状态中




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/203206,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
存储 前端开发 算法
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析(一)
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析
46 0
|
1月前
|
存储 并行计算 Java
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析(二)
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析
64 0
|
1月前
|
存储 缓存 安全
【C/C++ 关键字 存储类说明符 】 线程局部变量的魔法:C++ 中 thread_local的用法
【C/C++ 关键字 存储类说明符 】 线程局部变量的魔法:C++ 中 thread_local的用法
33 0
|
17天前
|
存储 安全 Java
java多线程之原子操作类
java多线程之原子操作类
|
19天前
|
Java
Java中的多线程实现:使用Thread类与Runnable接口
【4月更文挑战第8天】本文将详细介绍Java中实现多线程的两种方法:使用Thread类和实现Runnable接口。我们将通过实例代码展示如何创建和管理线程,以及如何处理线程同步问题。最后,我们将比较这两种方法的优缺点,以帮助读者在实际开发中选择合适的多线程实现方式。
23 4
|
21天前
|
Java Spring
springboot单类集中定义线程池
该内容是关于Spring中异步任务的配置和使用步骤。首先,在启动类添加`@EnableAsync`注解开启异步支持。然后,自定义线程池类`EventThreadPool`,设置核心和最大线程数、存活时间等参数。接着,将线程池bean注入到Spring中,如`@Bean(&quot;RewardThreadPool&quot;)`。最后,在需要异步执行的方法上使用`@Async`注解,例如在一个定时任务类中,使用`@Scheduled(cron = &quot;...&quot;)`和`@Async`结合实现异步定时任务。
16 2
|
30天前
|
Linux API C++
【C++ 线程包裹类设计】跨平台C++线程包装类:属性设置与平台差异的全面探讨
【C++ 线程包裹类设计】跨平台C++线程包装类:属性设置与平台差异的全面探讨
51 2
|
1月前
|
Java API C++
【C++ 与Qt 线程】C++ std::thread 与Qt qthread多线程混合编程
【C++ 与Qt 线程】C++ std::thread 与Qt qthread多线程混合编程
45 1
|
1月前
|
安全 C++ 开发者
【C++多线程同步】C++多线程同步和互斥的关键:std::mutex和相关类的全面使用教程与深度解析
【C++多线程同步】C++多线程同步和互斥的关键:std::mutex和相关类的全面使用教程与深度解析
18 0
|
1月前
|
安全 Java Unix
【C++ 包裹类 std::thread】探索C++11 std::thread:如何使用它来创建、销毁和管理线程
【C++ 包裹类 std::thread】探索C++11 std::thread:如何使用它来创建、销毁和管理线程
44 0