type
Post
status
Published
date
Sep 5, 2023
slug
c-sharp-async-create-thread
summary
C#异步编程-01 线程 Thread 创建线程
tags
C#
CS
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 许可协议,转载请注明出处。
相关文章

.png?table=block&id=0046d6a0-90d6-4830-ab82-0b51d81c5f51&t=0046d6a0-90d6-4830-ab82-0b51d81c5f51&width=1080&cache=v2)

.png?table=block&id=fa81f9ab-c0da-4f4e-a935-0567380c36d0&t=fa81f9ab-c0da-4f4e-a935-0567380c36d0&width=1080&cache=v2)
.png?table=block&id=55df38cd-a361-41ee-a75d-c17615e78d6b&t=55df38cd-a361-41ee-a75d-c17615e78d6b&width=1080&cache=v2)
_(1).jpg?table=block&id=a716c7ee-7105-4a3f-8133-a15129086419&t=a716c7ee-7105-4a3f-8133-a15129086419&width=1080&cache=v2)
.jpg?table=block&id=2e9784d9-1d6e-44fc-9106-f0c576ddcb8f&t=2e9784d9-1d6e-44fc-9106-f0c576ddcb8f&width=1080&cache=v2)

.png?table=block&id=c0772cdb-ee08-49f4-b2f3-c804586bb769&t=c0772cdb-ee08-49f4-b2f3-c804586bb769&width=1080&cache=v2)

.png?table=block&id=b43ea4ae-a57d-4962-80ba-12280979702b&t=b43ea4ae-a57d-4962-80ba-12280979702b&width=1080&cache=v2)
