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

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

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

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

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

  • 相关阅读:
    centos7 安装prometheus node_exporter
    RMAN备份演练初级篇
    RMAN命令
    oracle数据库的归档模式
    oracle的会话(session)
    oracle的例程
    oracle热备份
    Oracle数据库归档模式的切换及其相关操作详解
    Oracle角色
    类名.class, class.forName(), getClass()区别
  • 原文地址:https://www.cnblogs.com/MasterLin/p/13669377.html
Copyright © 2011-2022 走看看