zoukankan      html  css  js  c++  java
  • c#学习笔记线程

    多线程,顾名思义,就是在一个应用中实现多个任务,在c#中,线程Threads包含在System.Threading的namespace中。

    一、创建一个threads,最简单的方法就是创建一个threads实例

    eg:

         Thread myThread = new Thread( new ThreadStart(·····) );

    执行threads

         myThread.Start();

    使用threads的一个实例:

        Thread myThread = new Thread( new ThreadStart(Incrementer) );
        myThread.Start();
       console.WritLine("执行到此”);
       public void Incrementer( )
       { 
            for (int i =0;i<1000;i++)
           {
                 Console.WriteLine("Incrementer: {0}", i);

                 Thread.sleep(1000);
           }
       }

    在一个程序中执行一个包含此实例的任务,当到达了threads.start();时,将执行Incrementer操作中的Consloe.WriteLine操作,当执行完之后,才会继续执行threads.start();后面的操作,在这个实例中,会向控制台输出“执行到此”。

    注意到Incrementer中有 Thread.sleep(1000);语句,该语句是将此线程停止1秒,每一秒向控制台输出一个writeline语句。Thread.sleep()中时间默认为一毫秒为单位。

    下面是threads类中非常重要的方法:

    Start():启动线程;

    Sleep(int):静态方法,暂停当前线程指定的毫秒数; 

    Abort():通常使用该方法来终止一个线程;

    Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复; 

    Resume():恢复被Suspend()方法挂起的线程的执行。

    使用threads的一个实例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace thr
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("start");
                Thread th1 = new Thread(Thread1);
                th1.Start();
                Console.WriteLine("middle");
                Thread th2 = new Thread(Thread2);
                th2.Start();
                Console.WriteLine("end");
                Thread th3 = new Thread(Thread3);
                th3.Start();
    
            }
            public static void Thread1()
            {
                for (int i = 0; i < 10; i++)
                    Console.WriteLine("Thread1 exec: {0}", i);
            }
    
            public static void Thread2()
            {
                for (int j = 0; j < 10; j++)
                    Console.WriteLine("Thread2 exec: {0}", j);
            }
    
            public static void Thread3()
            {
                for (int a = 0; a < 10; a++)
                    Console.WriteLine("Thread3 exec: {0}", a);
            }
    
        }
    }

    结果为:

  • 相关阅读:
    使用javap分析Java的字符串操作
    使用javap深入理解Java整型常量和整型变量的区别
    分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型
    Java动态代理之InvocationHandler最简单的入门教程
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
  • 原文地址:https://www.cnblogs.com/zyqBlog/p/4494253.html
Copyright © 2011-2022 走看看