zoukankan      html  css  js  c++  java
  • 线程基础,线程池 clr via c# 读书笔记(2)

    因为线程是非常宝贵的资源,在创建和销毁线程是一个昂贵的操作需要耗费大量时间,且大量的线程会浪费内存资源,CLR 包含了代码来管理自己的线程池。

    CLR 线程池,线程池自动管理线程的创建和销毁。线程池所创建的线程,将为各种任务而分配。CLR初始化的时候,线程池中没有线程在内部维护了一个操作请求队列,应用程序执行一个异步操作时,就调用某个方法,将一个记录项追加到线程池的队列中。线程池的代码从这个队列中提取记录项,将这个记录项派发给一个线程池线程。如果线程池中没有线程,会创建线程虽然会造成一定性能的损失,然而当线程池线程完成任务后,线程不会被销毁。而是返回到线程池,在里面进入空闲状态,等待响应另一个请求。由于线程不销毁自身,所以不再产生额外的性能损失。

    如果应用程序 向线程池发出许多请求,线程池会尝试只用一个线程来服务所有请求。如果请求速度超过线程池线程处理他们的速度,就会创建额外的线程。最终,应用程序的所有请求都由少量线程处理。如果应用程序停止向线程池发送请求,线程池中的线程在一段时间后CLR 会主动终止线程。

    线程池可以使得你的应用程序和软件 响应灵敏 伸缩性强且更加的可靠。

  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/MasterLin/p/13669377.html
Copyright © 2011-2022 走看看