zoukankan      html  css  js  c++  java
  • 多线程

    • 共享变量

    1.不可变对象
    2.事实不可变对象。虽然客观上其对象内容是可变的。但是因为业务需求,可保证其不被改变
    3.可变对象。需要同步。同步分为两种情况,第一种是竞争高度激烈的情况下,需要使用锁机制。第二种情况是竞争相对平稳,这个时候可以使用原子操作。
      锁分为object对象自带的锁机制、可重入锁以及在此基础上延伸的信号量、栅栏、循环栅栏。(wait,notify).

      可重入锁的好处:1.可重入。2.可中断。3.条件控制更加灵活。4.可以非阻塞。
      锁的框架有fork/join框架。这个框架是用来分解一个大任务为多个小任务。并发执行。(recursiveTask)
      锁的框架有future机制。该机制的主要作用是异步调用。可以获取异步调用的结果,可以控制异步调用的进程。(callable)。

      锁的框架还有一个complicationService。该机制的是一次可以异步调用多个线程,然后异步获取每个线程的结果。

    • 线程的锁的优化

      锁分段,锁分解(提高可伸缩性),避免热点区域,减小锁的范围

    • 替换独占锁的策略

      并发容器,读写锁,不可变对象,原子变量。

    • 死锁发生的条件

  • 相关阅读:
    在wampserver环境下配置多个版本的PHP支持
    Jetbrains全系列完美破解--------亲测可用
    python学习笔记1:元组
    python学习笔记0:列表
    入坑:分享几个优秀的编程博客
    java集合-EnumMap与EnumSet
    java集合-TreeSet
    java集合-TreeMap
    java集合-HashMap(JDK1.8)
    java集合-HashSet
  • 原文地址:https://www.cnblogs.com/cat-and-water/p/6541441.html
Copyright © 2011-2022 走看看