C#多线程与线程同步机制高级实战课程
资料地址1:https://pan.baidu.com/s/114xceucTnhkSS5uL8SFgwA 提取码:3q62
资料地址2:https://share.weiyun.com/YQJLFvp5 密码:ffqagx
1.进程和线程是啥?
进程:进程就是一个应用程序,对电脑的各种资源的占用
线程:线程是程序执行的最小单位,任何操作都是线程完成的,线程依托进程存在的,一个进程可以有多个线程
2.多线程
为啥会出现多此线程?
计算机的角度,因为CPU太快了,其他硬件跟不上CPU的速度。CPU可以分为时间片,大概就是时间分片---上下文切换(加载环境--计算--保存环境)。
从微观角度上说,一个核一个时刻,只能执行一个线程;宏观上来说是多线程并发。
另外CPU多核,可以独立工作。例如计算机是4核8线程中,核指的就是物理的核,线程指的是物理的核。
3.C#语言的线程
就是指Thread(.net 1.0的时候就出现了),Thread是一个类,是C#语言多线程对象的封装。
多线程缺点
线程也是程序,所以线程运行需要占用计算机资源,线程越多占用资源也越多。(占内存多)
多线程需要协调和管理,所以需要CPU跟踪线程,消耗CPU资源。(占cpu多)
线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题。多线程存在资源共享问题)
线程太多会导致控制太复杂,最终可能造成很多Bug。(管理麻烦,容易产生bug)
线程安全
如果多个线程访问相同的资源、不管如何调换调用顺序,在主进程不去做任何同步,都会让得到预期结果。这样就是线程安全。多个线程同时访问共享资源时,对共享资源的访问不同会导致数据不一致或产生预期外的结果,这就是非线程安全。
简单来说,线程安全就是你在主方法不管怎么调用某个多线程方法、调用几次、什么顺序调用,都能得到预期结果。
C#中创建和启动线程的方法
在C#中,我们可以使用System.Threading命名空间下的Thread类来实现多线程编程。下面是一个简单的示例,演示了如何创建和启动一个线程:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 创建一个Thread对象
Thread myThread = new Thread(new ThreadStart(Work));
// 启动线程
myThread.Start();
// 主线程等待子线程结束
myThread.Join();
Console.WriteLine("线程结束");
}
// 在线程中执行的方法
static void Work()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("子线程正在执行,i = {0}", i);
Thread.Sleep(1000);
}
}
}
线程局部存储
我们花费了大量篇幅来讲并发访问公共数据问题,前文提到的锁构造,信号构造,无锁构造本质上都是使用同步构造,使得多线程在访问公共数据时能安全的进行,然而有时我们会希望数据在线程间是隔离的,局部变量就能实现这个目的,但他们的生命周期总是那么短暂(随代码块而释放),我们期待更大作用域的隔离数据,线程局部变量(thread-local storage,TLS)就可以实现这个目的。
注意
1、进程(应用程序)会等待所有的前台线程完成后再结束本工作;但是如果只剩下后台线程,则会直接结束本工作,不会等待后台线程完成后再结束本工作。
2、在任何时候我们都可以通过线程的IsBackground属性改变线程的前后台属性
3、应用程序的主线程以及使用Thread构造的线程都默认为前台线程
4、基于线程池ThreadPool功能创建的线程都默认为后台线程
5、不涉及一些专用的,长时间保持运行的功能,都建议使用后台线程。
6、I/O 异步线程数,这个线程数限制的是执行异步委托的线程数量

zhuanxiangyat
- 粉丝: 13
最新资源
- 企业-集团内网网站建设解决方案(1).doc
- 互联网+模式下的小商品营销模式研究.docx
- Access数据库基础及应用教材配套资源ppt课件(完整版).zip
- 11可编程控制器的系统设计演示教学.ppt
- 东北大学2021年9月《计算机基础》作业考核试题及答案参考8.docx
- 应用TPI系统建设石油学科特色数据库初探-高校图书馆.docx
- 互联网+智慧医院的发展探索.docx
- 人工智能时代新闻记者的能力挑战与价值重塑.docx
- 吉林大学2021年9月《可编程控制器》作业考核试题及答案参考10.docx
- 基于大数据的智慧公交系统顶层架构设计.docx
- 2023年我的考研心得北京邮电大学计算机专业.doc
- 会计信息化对企业财务管理的影响及对策-1(1).docx
- 电子商务案例分析课程标准.doc
- 浅议会计信息化工作的特点.docx
- 互联网时代背景下图书馆阅览室建设研究.docx
- 基于单片机的音乐播放器设计.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


