type
status
date
slug
summary
tags
category
icon
password
Property
Sep 5, 2023 12:13 PM

什么是线程

线程Thred是一个可执行路径,它可以独立于其他线程执行
每个线程都是在操作系统的进程(Process)内执行,而操作系统进程提供了程序运行的独立环境。
单线程应用,在进程的独立环境里只跑一个线程,所以该线程拥有独占权。
多线程应用,单个进程中会跑多个线程,他们会共享当前的执行环境(尤其是内存)
例如,一个线程在后台读取数据,另有一个线程在数据到达后进行展示
这个数据就被称作是共享的状态
notion image

Code示例

例子

在单核计算机是哪个,操作系统必须为每个线程分配“时间片”(在win中通常为20ms)来模拟并发,从而导致重复的x和y块
在多核或多处理器计算机上,这两个线程可以真正的并行执行(可能收到计算机其他活动进程的竞争)
在本例中,由于控制台处理并发请求的机制的微妙性,您可能收到重复的x和y块
notion image

术语:线程被抢占

线程在这个时候就可以称为被抢占了
它的执行与另外一个线程上代码的执行交织的那一刻

线程的一些属性

线程一旦开始执行,isAlive就是true,线程结束就变成了false
线程结束的条件就是:线程构造函数传入的委托结束了执行
线程一旦结束,就无法再重启
每个线程都有个Name属性,同城用于调试
线程Name只能设置一次,以后更改会抛出异常
静态的Thread.CurrentThread属性,会返回当前执行的线程
例子:CurrentThread
notion image
C#异步编程-15 ConinuationC#异步编程-02 Thread Join Thread Sleep
  • Waline
Kitety
Kitety
独特为佳
公告
我曾经七次鄙视自己的灵魂
--卡里·纪伯伦
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
 
最新评论
Loading...