zoukankan      html  css  js  c++  java
  • 线程和线程池优缺点

          每次new Thread的时候,都会创建一个单线程,但是,我们在项目中基本都是使用线程池,本文主要整理了线程和线程池的优缺点。

    new Thread的优缺点

          优点:通过new Thread()创建线程的API简单易用,结构清晰,对于执行单一的一次性任务十分便利。

          缺点

    1.  每次new Thread都新建对象,性能差;
    2.  没有线程管理者,可能会无限制新建线程,不仅会消耗系统资源,还会降低系统的稳定性,例如占用过多的系统资源导致OOM;
    3. 缺乏更多功能,比如定时、定期、并发数控制等功能。

    线程池的优点      

           合理利用线程池能够带来三个好处:

    • 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
    • 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
    • 提高线程的可管理性。线程是稀缺资源,使用线程池可以进行统一的分配、调优和监控。

    池化技术    

           提到线程池,就自然而然的想起了池化技术,池化技术的思想主要是提前缓存大量的资源,减少每次获取资源的消耗,提高对资源的利用率,特别是在高并发场景这种提高更加明显。使用池化技术缓存的资源对象有如下共同特点:

    1. 对象创建时间长;
    2. 对象创建需要大量资源;
    3. 对象创建后可被重复使用。

           除了上述线程池使用了池化技术,对象池、内存池(Memory pool)、数据库连接池和http连接池等也使用了。数据库连接池比较典型的有SqlServer、Oracle和MySQL的连接池。对象池就是提前创建很多对象,将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用。同样,这么好的思想在ActiveMQ连接池中也得到了应用。

  • 相关阅读:
    idea本地安装 lombok插件
    win7系统开机启动出现蓝屏,提示BAD_SYSTEM_CONFIG_INFO
    使用mini-textbox控件时 不能获取value值
    为表格动态添加一行,miniui组件无效
    miniui表格load数据成功后,回调函数,其中setData要用如下方法
    路径1
    路径
    dubbo spring bean id冲突
    @Transactional spring 配置事务 注意事项
    Spring事务管理只对出现运行期异常进行回滚
  • 原文地址:https://www.cnblogs.com/east7/p/13188722.html
Copyright © 2011-2022 走看看