zoukankan      html  css  js  c++  java
  • 010 线程并发问题

    一 .概述

      在之前我们将线程的一些基本的问题都做出讲解,现在我们开始接触线程的真正的核心问题,那就是线程的并发问题.

      线程的安全问题主要有三个方面:

      [1]线程安全问题

      [2]线程活跃性问题

      [3]线程性能问题


     二 .线程安全问题

      当多线程并发的时候,可能出现多线程争夺资源的问题,当处理不好就会发生线程线程安全问题.

        线程安全问题实质就是多线程情况下得出的结果和我们预期不一致,那也就是说是错误的.

          当错误发生发生的时候,多线程对于我们就是伤害,任何性能的提升都没有价值.

    因此,线程的安全性问题是最基本需要保证的.

      线程的安全性问题基本上都可以用锁机制来完成,这个机制在后面是我们详细要讲述的,包括内置锁和高级锁等内容.


     三 ,线程活跃性问题

      当线程安全性问题解决之后,我们可能会遇到线程的活跃性问题,常见的问题有如下三种:

        死锁,饥饿,活锁.

      当我们的程序遇到活跃性问题的时候,多线程的程序可能无法运行下去,虽然是存在几率的.

      在下面的内容之中,或详细介绍线程活跃性问题.


     四 . 线程性能问题

      当我们处理完上面的线程安全性问题和活跃性问题的时候,我们实质上是将线程的无序性进行了控制,当我们花费在这上面的资源过多的时候,并发带来的

        性能提升还剩下多少呢?

        如果多线程提升的性能还不及控制花费的资源,我们使用线程根本没有任何意义.

      这部分的内容会在后面的并发容器和高级锁部分进行讲解.


     五 . 线程问题

      在上面列出了我们在多线程并发的时候需要注意的问题,

        这也是多线程并发为什么比单线程程序设计困难的地方,在后面我们会介绍一些常用的思维方式,

          拿着这些常见的经验可以减少我们并发设计的代价.

        线程安全性问题 > 活跃性问题 > 性能问题 

      上面是我们设计多线程时候追求的目标,如果前面的一个目标都不能完成,那么下面的目标根本不需要考虑了.

      

  • 相关阅读:
    jQuery ajax解析xml文件demo
    Jquery ajax传递xml方式在ie8下兼容问题
    Ajax 跨域请求
    【leetcode刷题笔记】Maximal Rectangle
    【leetcode刷题笔记】Substring with Concatenation of All Words
    【leetcode刷题笔记】Largest Rectangle in Histogram
    【leetcode刷题笔记】Decode Ways
    【leetcode刷题笔记】3Sum Closest
    【leetcode刷题笔记】3Sum
    【leetcode刷题笔记】Divide Two Integers
  • 原文地址:https://www.cnblogs.com/trekxu/p/8995792.html
Copyright © 2011-2022 走看看