010 线程并发问题

一 .概述

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

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

  [1]线程安全问题

  [2]线程活跃性问题

  [3]线程性能问题


 二 .线程安全问题

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

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

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

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

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


 三 ,线程活跃性问题

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

    死锁,饥饿,活锁.

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

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


 四 . 线程性能问题

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

    性能提升还剩下多少呢?

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

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


 五 . 线程问题

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

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

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

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

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

  

原文地址:https://www.cnblogs.com/trekxu/p/8995792.html