美文网首页
多线程优化--synchronized、Lock等优化

多线程优化--synchronized、Lock等优化

作者: 阔阔飞翔 | 来源:发表于2021-07-09 09:30 被阅读0次

    1、synchronized

    (1)重量锁,轻量锁,偏向锁(synchronized自带的优化)

    (2)锁的粒度

    2、Lock锁

    Lock锁可灵活控制锁的位置,优化点:将ReentrantLock变成ReentrantReadWriteLock读写锁。ReentrantReadWriteLock中的读锁是并行执行的。

    3、一些经验

    4、线程池优化策略

    1、参数说明

    2、执行顺序


    3、jdk自带的四种策略

    (1)ThreadPoolExecutor.AbortPolicy 丢弃任务,并抛出 RejectedExecutionException 异常。

    (2)ThreadPoolExecutor.CallerRunsPolicy:该任务被线程池拒绝,由调用 execute方法的线程执行该任务。

    (3)ThreadPoolExecutor.DiscardOldestPolicy : 抛弃队列最前面的任务,然后重新尝试执行任务。

    (4)ThreadPoolExecutor.DiscardPolicy,丢弃任务,不过也不抛出异常。

    当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略。

    4、优化经验

    5、并发容器的选择

    6、上下文切换优化

    1、

    2、

    相关文章

      网友评论

          本文标题:多线程优化--synchronized、Lock等优化

          本文链接:https://www.haomeiwen.com/subject/dmeeultx.html