zoukankan      html  css  js  c++  java
  • 多线程

    1.定义:

    ThreadStart是System.Threading命名空间内的一个委托

      ThreadPriority和ThreadState是System.Threading命名空间内的枚举

      ThreadAbortException和ThreadStartException是System.Threading命名空间内的异常类

    2.Thread类的属性和方法

     1)创建线程

    Thread 线程实例名称=new Thread(new ThreadStart(方法名称));

    必须调用Thread 实例的Start() 方法才能使线程开始执行

     2)方法

     Abort()调用该方法终止线程

     Join()禁止调用线程,直到线程终止

     Thread.Interrupt()中止处于Sleep或Join线程状态的线程

     Suspend()挂起线程;如果线程挂起,则方法无效

     Resume() 恢复被挂起的线程

     3)锁定机制

     锁定机制确保每次只有一个线程访问方法 或代码,除非它已经完成了对方法或代码的执行,否则其他进程就无法进行访问

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    /**/
    using System.Threading;
    namespace BaseConsole
    {
        class ThreadLockDemo
        {
            static void Main()
            {
                Thread.CurrentThread.Name = "主线程";
                ThreadLockDemo objDemo = new ThreadLockDemo();
                Thread newThread = new Thread(new ThreadStart(objDemo.DoTask));
                newThread.Name = "子线程";
                newThread.Start();
                objDemo.DoTask();
                Console.ReadKey();
    
            }
            void DoTask()
            {
                lock(this)
                {
                    for (int count = 1; count <= 10;count++ )
                    {
                        Console.WriteLine("线程名:"+Thread.CurrentThread.Name);
                    }
                }
    
            }
        }
    }

    结果:


    3.对线程的调度

       ThreadPriority枚举的成员:Highest > AboveNormal> Normal >BelowNormal >Lowest

    objThread .Priority=ThreadPriority.Highest;
    欢迎转载或分享,如果文章对你有帮助,请给予推荐,欢迎交流及关注!!!
  • 相关阅读:
    取多列数据的最大值、最小值sql
    java中实现时间差的计算
    数据更新sql
    自连接的用法sql
    获取第一条,最后一条数据sql
    复制表结构 表数据sql
    用 ORDER BY 生成“排序”列sql
    表之间的数据匹配(生成交叉表)sql
    SIP呼叫流程
    如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
  • 原文地址:https://www.cnblogs.com/dong897812629/p/3104823.html
Copyright © 2011-2022 走看看