C# 理解Thread.Join()方法
2023-09-11 14:22:03 时间
C# 理解Thread.Join()方法
MSDN的解释:阻塞调用线程,直到某个线程终止时为止。首先明确几个问题:
1、一个进程由一个或者多个线程组成,线程之间有可能会存在一定的先后关系和互斥关系。多线程编程,首先就是要想办法划分线程,减少线程之间的先后关系和互斥关系,这样才能保证线程之间的独立性,各自工作,不受影响。Google的MapReduce核心思想就是尽量减少线程之间的先后关系和互斥关系。
2、无论如何地想办法,线程之间还是会存在一定的先后关系和互斥关系,这时候可以使用Thread.Join方法。
3、一个线程在执行的过程中,可能调用另一个线程,前者可以称为调用线程,后者成为被调用线程。
4、Thread.Join方法的使用场景:调用线程挂起,等待被调用线程执行完毕后,继续执行。
5、被调用线程执行Join方法,告诉调用线程,你先暂停,我执行完了,你再执行。从而保证了先后关系。
6、考虑一种有意思的情况:在当前线程内调用Thread.CurrentThread.Join() 会出现什么情况?分析:假设当前线程为A,此时调用线程为A,被调用线程也为A,由于调用线程A暂停,被调用线程A(也就是调用线程A)永远不会执行完毕,造成死锁。
相关文章
- Visual C#之核心语言
- 【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
- C# 系统应用之无标题窗体移动的两种方法
- C#监控usb设备插拔
- C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
- C# SQL多条件查询拼接技巧
- VS2010在C#头文件中添加文件注释的方法
- C#程序不包含适合于入口点的静态“Main”方法怎么办
- asp.net与C# path.GetFullPath 获取上级目录
- Java aes加密C#解密的取巧方法
- C#设计模式——工厂方法模式(Factory Method Pattern)
- C#异常处理
- [C#]Attribute特性
- C# DataSet.RejectChanges 方法
- C#在winform中调用系统控制台输出
- C# 中的 ref 和 out 的意义和使用方法
- C# 匿名方法
- C# SQLite数据库 访问封装类
- 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
- 【原创】开源Math.NET基础数学类库使用(12)C#随机数扩展方法
- Atitit.视频文件加密的方法大的总结 java c# php
- Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx
- C#获取当前正在执行的代码的命名空间、类、方法的名称
- CSharp(C#)语言_第七章(语句)
- [C#]c#中数据的同步加锁机制 的几种方法
- c#委托与代理