Thread 线程基础之-线程相关知识
线程的优先级
设置或者获得当前线程的优先级:
using System;using System.Collections.Generic;using System.Text;using System.Threading; namespace ThreadTest{class Program {static void Main(string[] args) { // 线程调度 Thread t5 = new Thread(ThreadMethed);// 获取一个值,该值包含当前线程的状态 Console.WriteLine(" Thread线程状态:{0} ", t5.ThreadState.ToString()); t5.Start(); t5.Priority = ThreadPriority.Highest;// 设置线程优先级 Console.WriteLine(" Thread线程状态:{0} ", t5.ThreadState.ToString()); Console.WriteLine(" 主线程-执行 "); Console.WriteLine(" Thread线程状态:{0} ", t5.ThreadState.ToString()); Thread.Sleep(5000); Console.WriteLine(" Thread线程状态:{0} ", t5.ThreadState.ToString()); Console.ReadLine(); } /// <summary>/// 线程开始时执行的方法/// </summary> static void ThreadMethed() { Console.WriteLine(Thread.CurrentThread.Name+" Thread Start! "); Console.WriteLine(" Thread线程的优先级:{0} ", Thread.CurrentThread.Priority.ToString()); Thread.CurrentThread.Priority = ThreadPriority.Lowest; Console.WriteLine(" Thread线程的优先级:{0} ", Thread.CurrentThread.Priority.ToString()); Thread.Sleep(3000); Console.WriteLine(Thread.CurrentThread.Name + " Thread End! "); } }}
线程池的调度
using System;using System.Collections.Generic;using System.Text;using System.Threading; namespace ThreadTest{class Program {static void Main(string[] args) {// 通知正在等待的线程已发生事件// 若要将初始状态设置为终止,则为 true;若要将初始状态设置为非终止,则为 false。 AutoResetEvent autoEvent = new AutoResetEvent(false); Thread regularThread = new Thread(new ThreadStart(ThreadMethod)); regularThread.Start(); ThreadPool.QueueUserWorkItem(new WaitCallback(WorkMethod), autoEvent); // 阻塞当前(主线程)线程,并等待通知 autoEvent.WaitOne(); Console.WriteLine("主线程等待并得到了通知 "); Console.ReadLine(); } static void ThreadMethod() { Console.WriteLine("ThreadOne, executing ThreadMethod, is {0}from the thread pool.", Thread.CurrentThread.IsThreadPoolThread ? "" : "not "); } static void WorkMethod(object stateInfo) { Console.WriteLine("ThreadTwo, executing WorkMethod, is {0}from the thread pool.",Thread.CurrentThread.IsThreadPoolThread ? "" : "not "); Thread.Sleep(5000);// 将事件状态设置为终止状态,允许一个或多个等待线程继续 ((AutoResetEvent)stateInfo).Set(); } }}
运行结果如下:
线程中,方法 autoEvent.WaitOne();将阻塞调用线程,直到得到通知。
线程调用((AutoResetEvent)stateInfo).Set(); 后,通知被阻塞的线程,这时候,被阻塞的线程,才能被执行。
转载于:https://www.cnblogs.com/zhangzhensoft/archive/2012/01/15/2323195.html
Thread 线程基础之-线程相关知识相关推荐
- SQL注入 基础概述及相关知识
SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...
- java 线程 操作系统线程_线程基础:线程(1)——操作系统和线程原理
1.概述 我在写"系统间通信技术专栏"的时候,收到很多读者的反馈.其中有一部分读者希望我抽空写一写自己关于对Java线程的使用经验和总结.巧的是,这个月我所在的技术团队也有很多同事 ...
- java线程基础巩固---线程生命周期以及start方法源码剖析
上篇中介绍了如何启动一个线程,通过调用start()方法才能创建并使用新线程,并且这个start()是非阻塞的,调用之后立马就返回的,实际上它是线程生命周期环节中的一种,所以这里阐述一下线程的一个完整 ...
- Java中的线程基础篇-线程基本概念
线程的概念.创建方式.生命周期.优缺点 一.基础知识 1. 进程.线程.协程 1.1 进程 1.2 线程 1.3 协程 2. 串行.并发.并行 2.1 串行 2.2 并发 2.3 并行 二.线程的创建 ...
- linux线程基础篇----线程同步与互斥
linux线程基础----线程同步与互斥 一.同步的概念 1.同步概念 所谓同步,即同时起步,协调一致.不同的对象,对"同步"的理解方式略有不同.如,设备同步,是指在两个设备 ...
- Java基础 - 坦克大战(第三章,线程基础与线程使用)
文章目录 本章内容 - 多线程处理 绘制敌方坦克 线程基础 线程相关概念 程序(program) 进程 什么是线程 其他相关概念 单线程 多线程 并发 并行 获取当前电脑处理器(cpu)个数 Java ...
- 多线程与高并发(一):单机高并发应该掌握的线程基础:线程状态,异常与锁等
多线程复习 多线程的基本概念 什么是一个线程?如何开启一个线程? package com.mashibing.juc.c_000;import java.util.concurrent.TimeUni ...
- Nginx基础配置和相关知识
配置使用nginx 1.nginx虚拟主机 server{ listen server_name root ...
- 系统开发基础:UML相关知识笔记
1.UML概念 统一建模语言(Unified Modeling Language UML)是面向对象软件的标准建模语言.由于简单.统一,又能够表达软件设计中的动态和静态信息.目前UML已经成为可视化建 ...
最新文章
- 计算机导论中的名词解释,计算机导论期末考试试题及答案
- Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)
- 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
- 值对于 int32 太大或太小_怎样将视频文件变小却对画质没有太大影响呢?
- 米拓建站系统(MetInfo CMS)文章定时发布软件
- python解析xml文件选用模块_Python标准库系列之xml模块
- Am335x lcd驱动分析
- 十大必须掌握的 Chrome 浏览器开发者工具
- [ZBLOG]国庆巨献-4u-hemingway-Kenshin修改版(2007年11月5日更新)
- Linux中的7件武器详解
- 将Sublime打造成超强前端IDE
- 计算机一级怎么加波浪下划线,Word快速添加下划线,双下划线条、波浪线、虚线一键搞定...
- 中国各省省会城市及简称
- 马氏距离 java实现_马氏距离与欧氏距离
- linux wireshark 中文,Wireshark (简体中文)
- ubuntu下 vim工具的安装与使用教程(一)
- 方便好用的软件这里就有四款
- oppo手机android通知关闭,oppo手机怎么关闭系统升级提醒?OPPO关闭系统升级提醒的方法...
- SQL 触发器-如何查看当前数据库中有哪些触发器
- 【Axure基础教程】第19章 树节点
热门文章
- WP7中,如何把7.1的项目改为7.0的
- 《Windows Phone 7 用户界面设计和交互指南 v2.0》
- C#写一个URL编码转换GB23121的方法,然后可以取到天气预报
- 蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海
- 蓝桥杯 ADV-63 算法提高 利息计算
- ui li 菜单 点击添加下级_如何制作导航栏中的下拉菜单
- jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable
- Django中form字段操作
- 什么是软件开发的核心问题
- 觉得Win 10不如WP好?微软确认可以降级