zoukankan      html  css  js  c++  java
  • C#多线程学习

    C#多线程学习:
    (一)线程相关概念:
      1)进程:运行中的程序 + 程序所用到的内存和系统资源;

      2)线程:程序的执行流,有专有寄存器(栈指针、程序计数器等),代码区共享。

      3)多线程好处:

      CPU利用率高。

    4)多线程坏处:

      线程多-->内存占用多-->需要CPU时间跟踪线程协调和管理-->资源竟用-->多加控制-->造成Bug.

    5)相关函数:
      实例:

     1   using System;
     2   using System.Threading;
     3 
     4 namespace ThreadTest
     5 {
     6   class RunIt
     7   {
     8     [STAThread]
     9     static void Main(string[] args)
    10     {
    11       Thread.CurrentThread.Name="System Thread";
    12       Console.WriteLine(Thread.CurrentThread.Name+"'Status:"+Thread.CurrentThread.ThreadState);
    13       Console.ReadLine();
    14     }
    15   }
    16 }

     

    解析:


    在这里,我们通过Thread类的静态属性CurrentThread获取了当前执行的线程。
    静态属性:类所有对象所公有的属性,无论创建多少类的实例,静态属性只有一个。
    CurrentThread是静态的原因--虽多线程同时存在,但某一时刻,CPU只执行一个线程。

    Thread类有几个至关重要的方法,描述如下:
    Start():启动线程;
    Sleep(int):静态方法,暂停当前线程指定的毫秒数;
    Abort():通常使用该方法来终止一个线程;
    Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;
    Resume():恢复被Suspend()方法挂起的线程的执行。


    (二)操作进程线程:
    (三)生产者&消费者:
    (四)自动管理(线程池):
    (五)自动管理(定时器):
    (六)互斥关系:

  • 相关阅读:
    【Linux编程】socket编程
    虚函数相关问题分析
    Android使用ShowcaseView加入半透明操作提示图片的方法
    好的Unix工具的九大启发
    Android ADB工具-截图和录制视频(五)
    (三)ng-app的使用困惑和angularJS框架的自己主动载入
    spark一些入门资料
    jQuery -> 怎样【先创建、再改动、后加入】 DOM元素
    centos平台openstack spice配置
    openstack 启用spice
  • 原文地址:https://www.cnblogs.com/xuejianhui/p/2689009.html
Copyright © 2011-2022 走看看