type
status
date
slug
summary
tags
category
icon
password
Property
Aug 9, 2024 11:58 AM
什么是线程
线程Thred是一个可执行路径,它可以独立于其他线程执行
每个线程都是在操作系统的进程(Process)内执行,而操作系统进程提供了程序运行的独立环境。
单线程应用,在进程的独立环境里只跑一个线程,所以该线程拥有独占权。
多线程应用,单个进程中会跑多个线程,他们会共享当前的执行环境(尤其是内存)
例如,一个线程在后台读取数据,另有一个线程在数据到达后进行展示
这个数据就被称作是共享的状态
Code示例
例子
在单核计算机是哪个,操作系统必须为每个线程分配“时间片”(在win中通常为20ms)来模拟并发,从而导致重复的x和y块
在多核或多处理器计算机上,这两个线程可以真正的并行执行(可能收到计算机其他活动进程的竞争)
在本例中,由于控制台处理并发请求的机制的微妙性,您可能收到重复的x和y块
术语:线程被抢占
线程在这个时候就可以称为被抢占了
它的执行与另外一个线程上代码的执行交织的那一刻
线程的一些属性
线程一旦开始执行,isAlive就是true,线程结束就变成了false
线程结束的条件就是:线程构造函数传入的委托结束了执行
线程一旦结束,就无法再重启
每个线程都有个Name属性,同城用于调试
线程Name只能设置一次,以后更改会抛出异常
静态的Thread.CurrentThread属性,会返回当前执行的线程
例子:CurrentThread
- 作者:Kitety
- 链接:https://www.kitety.com/article/c-sharp-async-create-thread
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章