zoukankan      html  css  js  c++  java
  • 了解线程的属性及方法

     了解线程的属性及方法

    写在前面的话

    前一篇随笔我们主要介绍了了多线程相关的概念、多线程的其利与弊以及一个基本的多线程例子。那些都算是些常识性的东西,接下来介绍介绍线程相关的属性和方法吧!其实这篇随笔貌似可有可无,因为MSDN确实是个好东西,它告诉我们的着实太多了,其实这篇随笔主要就是参考MSDN然后进行代码实践而已。如果你觉得这些东西觉得木有必要,认为查MSDN就可以那就直接进入第三节吧(7.12更新),从第三节开始小弟就开始实践操作多线程,感兴趣的进噢!

    关于Thread的属性

    首先我先来一张图吧,此图来自MSDN,介绍的是Thread所有属性:

    接下来我写一个简单例子来看看(以下实践和总结全为本人亲自操作尝试,如有疑问可以和我探讨噢):

    1 Thread test = new Thread(new ThreadStart(myThread));
    2 test.Start();
    3 var x = test.CurrentCulture;    //此处声明变量使用的var,貌似不合理

    1.ApartmentState 这个属性在MSDN上显示的为已过时,它是一个枚举变量(STA、MTA、Unknown),其中STA表示Thread将被创建并进入一个单线程单元,MTA表示Thread将被创建并进入一个多线程单元,Unknown表示没有设置线程的单元状态,默认状态为MTA。

    2.CurrentContext 表示获取上下文信息(指线程和进程的执行环境,因此包括虚拟内存的设置<告诉我们那个物理内存页面对应那个虚拟内存地址>,句柄转换<因为句柄是基于进程的>,分派器信息,堆栈,以及通用和浮点寄存器的设置)。此句copy过来的额,不甚懂、、、

    3.CurrentCulture 我觉得这个蛮有意思的,它用来获取或设置当前线程的区域性。给出上例运行调试的该属性

    得到的信息有好多,可以识别地区语言、文本信息、Name等等,那个2052指中文(中国),1033指英语(英国),1042指韩语 。

    4.CurrentUICulture 这个属性貌似和CurrentCulture 一样的,用的少忽略之。

    5.IsAlive 用于获取一个值,该值指示当前线程的执行状态。当线程处于活动状态为true,否则为false。

    6.IsBackground 这个属性挺重要的,获取或设置一个值,该值指示某个线程是否为后台线程。以前用过有印象

    7.IsThreadPoolThread 获取一个值,该值指示线程是否属于托管线程池。如果此线程属于托管线程池,则为 true;否则为false

    8.ManagedThreadId 获取当前托管线程的唯一标识符。其值是一个整数,表示此托管线程的唯一标识符。话说这个东东经常在变,同一个程序几次运行结果不一样哦。

    9.Name 获取或设置线程的名称。它包含线程名称的字符串,或者如果未设置名称,则为null

    关于Thread的方法

    其实Thread有很多方法,这里列举几个我有实践的方法吧。

    1.对于Abort() 这个大家肯定熟悉,用于印发一个异常然后终止线程的运行

    2.GetApartmentState() 返回指示单元状态,默认值为MTA

    3.GetDomain() 返回当前线程正在其中运行的当前域。不过我试了在VS2010中木有这个方法啊,大神求解

    4.GetHashCode() 返回唯一的应用程序域标识符。不过不知道这个标示符怎么来的额,我运行刚才那个,一般总是10或者11

    5.Join() 在继续执行标准的 COM 和 SendMessage 消息泵处理期间,阻塞调用线程,直到某个线程终止为止。这句不甚懂啊啊啊

    6.Sleep(Int32) 这个很简单,就是将当前线程暂停指定的时间(毫秒)

    7.Start() 开启某个线程

    留在武汉的最后一晚

    学习这个真的真的真的很枯燥,貌似就算试了还是一头雾水,真的得继续接着continue探讨啊,好多不慎理解,继续努力吧,也希望有个大神可以来点拨下小弟,不甚感激!

    今天真心糗大了,YLL啊,你就莫介意额,祝你天天开心哈!明天就要走了,其实呢我还是蛮想见你的,不过呢你要上班貌似不可能了、、、

    前往上海各种压力,各种艰辛,加油吧,vito!哥是打不倒滴。生与死轮回不止,我们生,他们死!!!

    ------如果你觉得此文对你有所帮助,别忘了点击下右下角的推荐咯,谢谢!------

     
     
    分类: 编程基础
  • 相关阅读:
    CSS中position小解
    position
    mac默认安装postgresql, 如何让postgresql可以远程访问
    The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
    active admin gem error
    psql 无法添加超级用户
    ubuntu 15.04 安装Balsamiq Mockups 3
    Rails html 写public里图片的路径
    rails c 历史命令
    undefined local variable or method `per' for []:ActiveRecord::Relation
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3187833.html
Copyright © 2011-2022 走看看