zoukankan      html  css  js  c++  java
  • 多线程(一)

    线程被一个线程协调程序(一个CRL委托给操作系统的程序)管理着。线程协调程序确保将所有活动着的线程分配适当的执行时间,并且等待或阻止的线程是不消耗CPU资源的。

    线程用Thread类来创建, 通过ThreadStart委托来指明方法从哪里开始运行。

    public delegate void ThreadStart();

     static void Main(string[] args)
            {
                // Thread t = new Thread(new ThreadStart(Go));
                Thread t = new Thread(Go);//与上一行等同
                t.Start();
                Console.Read();
            }
    
            static void Go()
            {
                Console.WriteLine("hello");
            }

    接受参数的委托方法:public delegate void ParameterizedThreadStart(object obj);

    {
                Program p = new Program();
                //Thread t = new Thread(new ParameterizedThreadStart(p.Go));
                Thread t = new Thread(p.Go);//与上一行等同
                t.Start("rxm");
                Console.Read();
            }
    
            void Go(object s)
            {
                Console.WriteLine(s.ToString());
            }

    线程可以通过Name属性进行命名,只能设置一次,重命名会引发异常。

     static void Main(string[] args)
            {
                Thread.CurrentThread.Name = "main";
                Go();
                Thread t = new Thread(Go);
                t.Name = "go";
                t.Start(); 
                Console.Read();
            }
    
            static void Go()
            {
                Console.WriteLine("当前的线程名字是:" + Thread.CurrentThread.Name);
            }

    从.NET2.0开始,任何线程内未处理的异常都将导致程序关闭。为了避免由于异常引起的程序崩溃,需要在每个线程进入的方法内进行try/catch.

  • 相关阅读:
    3185 队列练习 1 3186 队列练习 2
    1063 合并果子
    堆排序
    奇怪的电梯
    3411 洪水
    2010 求后序遍历
    1729 单词查找树
    3137 栈练习1
    2821 天使之城
    括弧匹配检验(check.cpp)
  • 原文地址:https://www.cnblogs.com/hometown/p/3238759.html
Copyright © 2011-2022 走看看