Thread记录
项目用到了线程 所以写出来留作以后复习
线程Thread类包含在System.Threading命名空间有关线程的操作主要包含在这个类中
现在总结一下Thread的常用方法和属性
Start([参数])//开始运行线程
Sleep(毫秒)//线程休眠
Join()//线程阻塞
Abort()//终止线程 在调用此方法的线程上引发ThreadAbortExcetion
Interrupt() //中断处于WaitSleepJoin线程状态的线程
CurrentContext//获取当前进程的上下文
IsAlive//获取一个值,该值表示当前线程的执行状态。如果此线程已启动并且尚未正常终止或中止,则为true,否则为false.
IsBackground//获取或设置一个值,该值批示某个线程是否为后台线程
IsThreadPoolThread//获取一个值,该值指示线程是否属于托管线程池
ManagedThreadId//获取或设置线程的惟一标识
Name//获取或设置线程的名称。
Priority//获取或设置一个值,该值指示线程的调度优先级
{
Highest优先级别最高,可以将线程安排在任何其他优先级的线程之前。
AboveNormal优先级别次高,可以将线程安排在Highest优先级别之后,在具有Normal优先级别之前。
Normal优先级别普通,可以将线程安排在AboveNormal优先级别之后,在具有BelowNorml优先级别之前。
BelowNormal优先级别次低,可以将线程安排在Normal优先级别之后,在具有Lowest优先级别之前。
Lowest优先级别最低,可以将线程安排在任何其它优先级的线程之后。
}
ThreadState//获取一个值,该值包含当前线程的状态。
现在让我们来看看实际的运行结果
1简单的创建线程
1 static void Main(string[] args)
2 {
3 Thread th = new Thread(show);
4 th.Name = "demo";
5 //获取线程name
6 string name = th.Name;
7 //获取线程id
8 string id = th.ManagedThreadId.ToString();
9 //获取是否线程池线程
10 bool pool = th.IsThreadPoolThread;
11 //获取是否后台线程
12 bool bg = th.IsBackground;
13 Console.WriteLine("线程id:" +id+" 线程name:" + name+" 后台:" + bg+" 线程池:" + pool);
14 //启动线程
15 th.Start("这是线程调用");
16 //判断是否执行完毕
17 while (th.IsAlive)
18 {
19 Console.Write("*");
20 Thread.Sleep(100);
21 }
22 Console.Read();
23 }
24 //这里的参数只能是object类型的
25 static void show(object o)
26 {
27 //线程休眠1s
28 Thread.Sleep(1000);
29
30 Console.Write(o);
31 }
运行结果

Thread记录的更多相关文章
- 《Linux及安全》期中总结&《Linux内核分析》期终总结
[5216 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK NINE ...
- 20169212《Linux内核原理与分析》第八周作业
理论 task_struct的结构关系 非常庞大的数据结构,400多行代码.包括对进程链表的管理,控制台,文件系统描述,文件描述符,内存管理描述,信号描述等. 创建一个新进程在内核中的执行过程 for ...
- 第六周——分析Linux内核创建一个新进程的过程
"万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...
- 分析Linux内核创建一个新进程的过程
一.原理分析 1.进程的描述 进程控制块PCB——task_struct,为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct ...
- 关于C#中的线程重启的问题
首先不管是C#也好,还是java也好,对于已经Abort的线程是无法再次Start的,除非是声明私有变量new一个新的线程,网上也有很多人说可以Suspend挂起线程,然后再Resume继续,但是相信 ...
- 《Linux内核分析》第六周 进程的描述与创建
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK SIX(3 ...
- 20135220谈愈敏Blog6_进程的描述和创建
进程的描述和创建 谈愈敏 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 进程 ...
- Linux内核分析——期末总结
Linux内核学习总结 首先非常感谢网易云课堂这个平台,让我能够在课下学习,课上加强,体会翻转课堂的乐趣.孟宁老师的课程循序渐进,虽然偶尔我学习地不是很透彻,但能够在后续的课程中进一步巩固学习,更加深 ...
- 20169210《Linux内核原理与分析》第八周作业
第一部分:实验 首先还是网易云课堂的学习,这次的课程是进程的创建和进程的描述. linux进程的状态与操作系统原理中的描述的进程状态有些不同,例如就绪状态和运行状态都是TASK_RUNNING. Li ...
- Linux如何创建一个新进程
2016-03-31 张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux如何创建一个新进程 ...
随机推荐
- MySQL 中一条 sql 的执行过程
一条 SQL 的执行过程 前言 查询 查询缓存 分析器 优化器 执行器 数据更新 日志模块 redo log (重做日志) binlog (归档日志) undo log (回滚日志) 两阶段提交 为什 ...
- 图解B树及C#实现(3)数据的删除
目录 前言 从叶子节点删除数据 从非叶子节点删除数据 提前扩充只有 t-1 的 Item 的节点:维持 B树 平衡的核心算法 从左兄弟节点借用 Item 从右兄弟节点借用 Item 与左兄弟节点或者右 ...
- 基于.NetCore开发博客项目 StarBlog - (26) 集成Swagger接口文档
前言 这是StarBlog系列在2023年的第一篇更新~ 在之前的文章里,我们已经完成了部分接口的开发,接下来需要使用 curl.Postman 这类工具对这些接口进行测试,但接口一多,每次测试都要一 ...
- 移动 WEB 开发布局方式 ---- rem 适配布局
一.rem 基础 1. rem 单位 em : 相对于父元素的字体大小来说的 <div> <p></p> </div> div { font-size: ...
- JavaScript 评测代码运行速度
一.使用 performance.now() API 在 JavaScript 中,可以使用 performance.now() API 来评测代码的运行速度.该 API 返回当前页面的高精度时间戳, ...
- (Crack)SQL转Linq工具的使用——Linqer
官方下载网站:http://www.sqltolinq.com/ 这是干什么用的 就是Sql语句转Linq 给不熟悉的小白用 再用Linq 转 Lambda (用到Linq ...
- 黏包现象、struct模块、并行与并发
1.黏包现象 1.黏包现象产生的背景: 1.1 服务端连续执行三次recv 1.2 客户端连续执行三次send 执行上述操作会发现服务端一次性接收到了客户端三条消息,而后面两次什么都没接收到,该现象称 ...
- pycharm用不了pip
环境: win10,安装有python2和python3,主要使用python3,所有环境变量配合的也是python3,之前一直用的好好的,pip可以在命令行和pycharm中正常使用. pychar ...
- rem自动计算
写法一: //rem自动计算 (function (designWidth, maxWidth, viewWidth) { var doc = document, win = window, docE ...
- OpenLayers之OGC服务加载
一.实验内容 手动构造 GetCapabilities.GetMap 的操作链接,并在浏览器里发送HTTP 请求:利用 OpenLayers 进行 WMS 服务加载: 手动构造 GetCapabili ...