zoukankan      html  css  js  c++  java
  • JDK1.5多线程提高

    1.名词:

      1.任务的执行与任务的提交解耦

      2.任务的执行策略-可中断,取消

    2.线程封闭机制:

      针对单线程池而言,提高任务执行的速度,但是无需锁定

    3.饥饿死锁:

      任务长期得不到执行,其实就是形成闭合的环路导致,共享资源互相锁定导致

    4.超时机制:

      指定时间任务完不成,则重新加入的线程的执行队列中等待重新执行(超时就是重试机制)

    5.线程池的大小:

      做好做成动态的,看CPU的线程数:Runntime.avalibleProcessors()

    6.ExecutorService:

      线程管理器其实就是一个ThreadPools,里面有线程,任务队列所以我们可以定制ThreadPoolsExecutor(个数,最大个数,空闲时间,任务队列,线程工厂,拒绝处理器

      空闲时间:线程没有被执行的时间间隔,如果一直未被使用,则进行回收

      任务队列:用户提交的任务列表,其实就是缓存,等待线程执行---扩展点

      线程工厂:  线程池随着需求进行动态创建线程的过程中所使用的线程工厂  ----扩展点

      拒绝策略:针对用户提交任务的限制,因为队列是优先的---扩展点

      线程工厂:定制特殊的线程

      线程池:任务执行前后进行监控 beforeExecute  afterExecute

    7.队列:

      有届队列:大小有限制,超过容量之后将会执行拒绝的执行器

      无界队列:

      同步移交:针对大队列,直接提交给执行线程

    8.Caller-Run:一种饱和机制,任务执行在与Executor的所在线程,应用层进行排队执

    9.控制线程池的任务提交的速率就是通过信号量机制进行限制

    10.守护线程与非守护线程:(一些业务可以标识为守护线程,自动销毁)

    11.

    ===========================================================

    开发中的问题:

    1.线程池大小动态设置

    2.饱和策略

    3.任务执行失败,重试策略

    4.

  • 相关阅读:
    递归二分法和另类二分法(不推荐,因为占用资源)
    内置函数汇总
    非递归二分法
    2018.10.23习题随笔
    java中的类修饰符、成员变量修饰符、方法修饰符。
    js函数中的this关键字
    HTML5 <script>元素async,defer异步加载
    那些迷糊人的回调
    js函数prototype属性学习(二)
    js函数prototype属性学习(一)
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/3850061.html
Copyright © 2011-2022 走看看