• Java线程池(待续)


    线程池是预先创建线程的一种技术。。线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中。这些线程都是处于睡眠状态,即均为启动,不消耗CPU,而只是占用较小的内存空间。当请求到来之后,缓冲池给这次请求分配一个空闲线程,把请求传入此线程中运行,进行处理。当预先创建的线程都处于运行状态,即预制线程不够,线程池可以自由创建一定数量的新线程,用于处理更多的请求。当系统比较闲的时候,也可以通过移除一部分一直处于停用状态的线程。

    线程池的注意事项

    虽然线程池是构建多线程应用程序的强大机制,但使用它并不是没有风险的。在
    使用线程池时需注意线程池大小与性能的关系,注意并发风险、死锁、资源不足
    和线程泄漏等问题。
    (1)线程池大小。多线程应用并非线程越多越好,需要根据系统运行的软硬件
    环境以及应用本身的特点决定线程池的大小。一般来说,如果代码结构合理的话,
    线程数目与CPU 数量相适合即可。如果线程运行时可能出现阻塞现象,可相应
    增加池的大小;如有必要可采用自适应算法来动态调整线程池的大小,以提高
    CPU 的有效利用率和系统的整体性能。

    (2)并发错误。多线程应用要特别注意并发错误,要从逻辑上保证程序的正确
    性,注意避免死锁现象的发生。
    (3)线程泄漏。这是线程池应用中一个严重的问题,当任务执行完毕而线程没
    能返回池中就会发生线程泄漏现象。

    脚踏实地,仰望星空。
  • 相关阅读:
    JVM运行参数
    JVM学习
    自己瞎写的小项目随笔
    git入门
    @ResponseBody 注释
    jquery 正则表达式 验证邮箱 手机号 座机号 身份证
    ORACLE计算一年的12个月份
    css 图片 文字居中
    Jquery 取值相关
    标题栏下拉菜单
  • 原文地址:https://www.cnblogs.com/sijizhen/p/10646707.html
Copyright © 2020-2023  润新知