zoukankan      html  css  js  c++  java
  • CLR 进程与线程

    进程不过是应用程序的一个实例要使用的资源的一个集合,每个线程都被操作系统赋予了一个虚拟地址空间,确保一个进程中使用的代码和数据无法被另一个线程访问.

     Windows中,任何时候调用进程中创建的线程,都会调用哪个进程中加载的所有DLL的,终止某个线程时,也要调用加载的所有DLL

    在CLR执行垃圾回收时,会关起所有线程

    线程池 ThreadPool

    线程池中线程默认为后台线程

    当应用程序不停的向线程池发出请求时,线程池会创建较少的线程处理,可能是一个; 但是当请求停止,线程池中线程什么都不做时,会休眠,当休眠达到一定时间时,线程会自我消灭

    线程执行上下文CallContext

      阻止线程执行上下文"流动"

    View Code
    1    CallContext.LogicalSetData("Name", "张三");
    2 //线程池访问逻辑调用上下文数据
    3 ThreadPool.QueueUserWorkItem(state => print.WriteLine("Name={0}", state), CallContext.LogicalGetData("Name"));
    4 //阻止当前线程执行上下文"流动"
    5 ExecutionContext.SuppressFlow();
    6 ThreadPool.QueueUserWorkItem(state => print.WriteLine("Name={0}", state), CallContext.LogicalGetData("Name"));
    7 //Result: Name=张三
    8 // Name=

    //待续.....

  • 相关阅读:
    STL源码剖析之_allocate函数
    PAT 1018. Public Bike Management
    PAT 1016. Phone Bills
    PAT 1012. The Best Rank
    PAT 1014. Waiting in Line
    PAT 1026. Table Tennis
    PAT 1017. Queueing at Bank
    STL源码剖析之list的sort函数实现
    吃到鸡蛋好吃,看看是哪只母鸡下的蛋:好用的Sqlite3
    cJSON
  • 原文地址:https://www.cnblogs.com/blackman/p/2203151.html
Copyright © 2011-2022 走看看