thread是什么意思中文(C语言中Thread与Task有什么区别)
本文目录
C语言中Thread与Task有什么区别
Thread是C#中最早的多线程模型,后来才推出的Task。微软推出Task的目的,就是要替代Thread,给程序员们提供一种更科学的线程模型。
Thread
Thread是基于delegate的早期线程模型。
固定参数的delegate
支持线程的常规操作,如Start,Join,Abort,Interrupt,Suspend,Resume等等。
使用Thread可以完成大部分的常规线程操作。虽然Thread不如Task强大,但是Thread也有一个使用得非常广泛的API:
Thread.Sleep
尽管设计得好的多线程程序,完全不需要显式地Sleep!
另外,刚才用.Net Framework 4.7.2 创建了一个项目,看了看Thred的API,居然也支持了Yield:
Thread.Yield
更有ResetAbort这种操作:
Thread.ResetAbort
真是不用Thread久已!
Task
Task是基于Action,Func的更加现代的线程模型。支持模板参数,比Thread中的固定参数delegate,在进行数据传递的时候,要更加灵活。
基于Action
Task采用了和ThreadPool类似的调度策略,但是Task在多核心CPU中在表现,要比ThreadPool更好。
在单核心CPU上执行的时候,Thread和Task基本没有太大区别。
Task在线程的控制方面,有更加强大的API支持:
Task通过CancellationToken支持一种线程的取消机制
Task支持Delay操作
Task提供了更完善的异常处理机制
Task自带线程工厂,方便随时创建Task
Task支持Wait WaitAny WaitAll
Task支持WhenAny WhenAll
Task支持ContinueWith,节省线程开销
Task支持Yield操作
Task通过TaskScheduler可以支持线程队列
Task还可以配合 async 和 await 关键字,写出更优雅的多线程程序,用过的人才知道有多香!
。。。 。。。
总之,Task是更加现代的线程管理模型,推荐优先使用Task。
后续我将专门写一批C#中线程相关的文章,欢迎关注:
thread: n. 线,纤维,思路,线索v. 穿线于,穿过,成线词形变化: 名词:threader 动词过去式:threaded 过去分词:threaded 现在分词:threading 第三人称单数:threads 例句与用法: 1. I’m afraid I’ve lost the thread of your argument. 我恐怕没有抓住你的论据的思路。 2. The little girl threaded the shells together and wore them round her neck. 小女孩把贝壳穿成一串,戴在脖子上。 3. The thread’s gone. 螺纹都给磨光了。 4. The girl tied the ends of the thread. 这女孩把线的两端结起来。 5. He passed me a coil of thread. 他递给我一卷线。 6. I need one more spool of thread before finishing the embroidery. 再来一轴线我就可以完成这幅刺绣了。 7. The thread seems to match the cloth. 这线和这布似乎很相称。 8. How many spools of thread did you use? 你用了几轴线?
本文相关文章:

关于易语言的 驱动器框 目录框 文件框?怎样修改ppt文件边框
2025年4月11日 17:50

哪一个编程语言比较好?什么是pypl,以及tiobe-index的不同
2025年4月5日 03:30

java接口代码(不同编程语言的程序可不可以通过接口相互调用)
2025年4月1日 13:00

stakeholder theory(英语语言文学硕士毕业论文答辩一般会问什么问题)
2025年3月29日 17:00

在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?if(i=a<ba:b;i>0;i--)啥意思
2025年3月29日 11:50

谭浩强c语言电子版(哪本书最适合初学电工电子比如初学C语言就用谭浩强C程序设计,单片机就郭天祥单片机)
2025年3月23日 06:30

易语言辅助论坛(请问想学写游戏脚本,是学易语言还是学按键精灵)
2025年3月18日 14:40

c语言和c加加先学哪个(c++是在c语言的基础上演变来的,那为何c++没有代替c语言呢)
2025年3月9日 22:20

编程学哪个语言好(现在学习编程,学那个语言简单点好学,好就业)
2025年3月9日 16:20
更多文章:

php文件用浏览器打开(wampserver怎么部署php文件能在浏览器中打开)
2025年3月27日 13:20

应用级灾备和数据级灾备之间有什么区别该如何选择?什么叫系统级灾备除了系统级灾备,灾备分为几种
2025年3月2日 23:50

寄存器的作用是什么(DPTR是什么寄存器 它的作用是什么 它由哪几个寄存器组成)
2025年4月2日 02:40

html中target的用法(HTML 中target的作用)
2025年3月31日 14:10

include用法及例句(included including的用法 可不可以给我几个很好的例句来分析他们的用法!)
2025年3月10日 17:00

format long(matlab编程时 format long e 和format long 有什么区别)
2025年3月25日 01:10