一 .概述
在之前我们将线程的一些基本的问题都做出讲解,现在我们开始接触线程的真正的核心问题,那就是线程的并发问题.
线程的安全问题主要有三个方面:
[1]线程安全问题
[2]线程活跃性问题
[3]线程性能问题
二 .线程安全问题
当多线程并发的时候,可能出现多线程争夺资源的问题,当处理不好就会发生线程线程安全问题.
线程安全问题实质就是多线程情况下得出的结果和我们预期不一致,那也就是说是错误的.
当错误发生发生的时候,多线程对于我们就是伤害,任何性能的提升都没有价值.
因此,线程的安全性问题是最基本需要保证的.
线程的安全性问题基本上都可以用锁机制来完成,这个机制在后面是我们详细要讲述的,包括内置锁和高级锁等内容.
三 ,线程活跃性问题
当线程安全性问题解决之后,我们可能会遇到线程的活跃性问题,常见的问题有如下三种:
死锁,饥饿,活锁.
当我们的程序遇到活跃性问题的时候,多线程的程序可能无法运行下去,虽然是存在几率的.
在下面的内容之中,或详细介绍线程活跃性问题.
四 . 线程性能问题
当我们处理完上面的线程安全性问题和活跃性问题的时候,我们实质上是将线程的无序性进行了控制,当我们花费在这上面的资源过多的时候,并发带来的
性能提升还剩下多少呢?
如果多线程提升的性能还不及控制花费的资源,我们使用线程根本没有任何意义.
这部分的内容会在后面的并发容器和高级锁部分进行讲解.
五 . 线程问题
在上面列出了我们在多线程并发的时候需要注意的问题,
这也是多线程并发为什么比单线程程序设计困难的地方,在后面我们会介绍一些常用的思维方式,
拿着这些常见的经验可以减少我们并发设计的代价.
线程安全性问题 > 活跃性问题 > 性能问题
上面是我们设计多线程时候追求的目标,如果前面的一个目标都不能完成,那么下面的目标根本不需要考虑了.