线程的优先级

设置或者获得当前线程的优先级:

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 线程基础之-线程相关知识相关推荐

  1. SQL注入 基础概述及相关知识

    SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...

  2. java 线程 操作系统线程_线程基础:线程(1)——操作系统和线程原理

    1.概述 我在写"系统间通信技术专栏"的时候,收到很多读者的反馈.其中有一部分读者希望我抽空写一写自己关于对Java线程的使用经验和总结.巧的是,这个月我所在的技术团队也有很多同事 ...

  3. java线程基础巩固---线程生命周期以及start方法源码剖析

    上篇中介绍了如何启动一个线程,通过调用start()方法才能创建并使用新线程,并且这个start()是非阻塞的,调用之后立马就返回的,实际上它是线程生命周期环节中的一种,所以这里阐述一下线程的一个完整 ...

  4. Java中的线程基础篇-线程基本概念

    线程的概念.创建方式.生命周期.优缺点 一.基础知识 1. 进程.线程.协程 1.1 进程 1.2 线程 1.3 协程 2. 串行.并发.并行 2.1 串行 2.2 并发 2.3 并行 二.线程的创建 ...

  5. linux线程基础篇----线程同步与互斥

    linux线程基础----线程同步与互斥 一.同步的概念 1.同步概念  所谓同步,即同时起步,协调一致.不同的对象,对"同步"的理解方式略有不同.如,设备同步,是指在两个设备   ...

  6. Java基础 - 坦克大战(第三章,线程基础与线程使用)

    文章目录 本章内容 - 多线程处理 绘制敌方坦克 线程基础 线程相关概念 程序(program) 进程 什么是线程 其他相关概念 单线程 多线程 并发 并行 获取当前电脑处理器(cpu)个数 Java ...

  7. 多线程与高并发(一):单机高并发应该掌握的线程基础:线程状态,异常与锁等

    多线程复习 多线程的基本概念 什么是一个线程?如何开启一个线程? package com.mashibing.juc.c_000;import java.util.concurrent.TimeUni ...

  8. Nginx基础配置和相关知识

    配置使用nginx 1.nginx虚拟主机         server{             listen             server_name             root    ...

  9. 系统开发基础:UML相关知识笔记

    1.UML概念 统一建模语言(Unified Modeling Language UML)是面向对象软件的标准建模语言.由于简单.统一,又能够表达软件设计中的动态和静态信息.目前UML已经成为可视化建 ...

最新文章

  1. 计算机导论中的名词解释,计算机导论期末考试试题及答案
  2. Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)
  3. 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
  4. 值对于 int32 太大或太小_怎样将视频文件变小却对画质没有太大影响呢?
  5. 米拓建站系统(MetInfo CMS)文章定时发布软件
  6. python解析xml文件选用模块_Python标准库系列之xml模块
  7. Am335x lcd驱动分析
  8. 十大必须掌握的 Chrome 浏览器开发者工具
  9. [ZBLOG]国庆巨献-4u-hemingway-Kenshin修改版(2007年11月5日更新)
  10. Linux中的7件武器详解
  11. 将Sublime打造成超强前端IDE
  12. 计算机一级怎么加波浪下划线,Word快速添加下划线,双下划线条、波浪线、虚线一键搞定...
  13. 中国各省省会城市及简称
  14. 马氏距离 java实现_马氏距离与欧氏距离
  15. linux wireshark 中文,Wireshark (简体中文)
  16. ubuntu下 vim工具的安装与使用教程(一)
  17. 方便好用的软件这里就有四款
  18. oppo手机android通知关闭,oppo手机怎么关闭系统升级提醒?OPPO关闭系统升级提醒的方法...
  19. SQL 触发器-如何查看当前数据库中有哪些触发器
  20. 【Axure基础教程】第19章 树节点

热门文章

  1. WP7中,如何把7.1的项目改为7.0的
  2. 《Windows Phone 7 用户界面设计和交互指南 v2.0》
  3. C#写一个URL编码转换GB23121的方法,然后可以取到天气预报
  4. 蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海
  5. 蓝桥杯 ADV-63 算法提高 利息计算
  6. ui li 菜单 点击添加下级_如何制作导航栏中的下拉菜单
  7. jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable
  8. Django中form字段操作
  9. 什么是软件开发的核心问题
  10. 觉得Win 10不如WP好?微软确认可以降级