020 线程的综合考虑

Posted 最爱五仁月饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了020 线程的综合考虑相关的知识,希望对你有一定的参考价值。

一 . 概述

  在前面我们介绍了线程的同步和通信的方式,其根本就是在线程并发的时候更好的保证线程的安全性,可见性,有序性.

    总的来说,就是将线程的不可控制的特性尽量降低,在正确和性能之间寻找平衡点.

      控制就意味性能的降低,但是我们需要控制来保证安全性.

  总的来说,现在就是我们寻找线程的平衡点的一个时机.


 

二 .我们的期望

  对于线程来说.我们希望获取的是性能高效且结果正确的线程运行.

   但是这个是不可能的.我们总需要牺牲一些来完成.但是这并不是说我们无能为力,我们可以做出一下的几点改进.

    [1]减小锁的粒度,于是JUC中出现了高级锁.

    [2]无锁化,使用CAS来完成.

    [3]并发方案的整体改进,线程辅助类的提出.

    [4]减少线程创建的代价,线程池框架的出现.

    [5]安全集合减少同步代价

    等等,不一而足,上面的这些东西都在JUC之中出现了.另外还有Callable,Future异步等概念的出现,Fork/Join并行的概念的出现.

      通过JUC,我们可以简化并发程序编写的难度,但是我们需要知道的是,并发总是需要小心的对待.

以上是关于020 线程的综合考虑的主要内容,如果未能解决你的问题,请参考以下文章

[转]C#综合揭秘——细说多线程(上)

C#综合揭秘——细说多线程(上)

同步-同步锁-死锁-线程交互-线程综合示例

[面向对象与多线程综合实验]数据挖掘系统

多线程-多图下载综合案例-SDWebImage框架的底部实现

ios开发多线程四:NSOperation多图下载综合案例