JAVA并发(1)

2017-07-15  本文已影响0人  学海无涯_18cd

同步与异步

   指的是方法调用,同步是当调用方法的时候需要等待返回在继续执行下面的代码,异步是开启新的线程处理,原线程无线等待异步返回继续执行下面的代码

并发与并行

并发:一会做事情 一会做另外一件事情

并行:两个线程或者进程同时进行

表象是都是同时进行的

临界区

  相当于公共资源,所有的资源都可以访问临界区,在多线程同时进入临界区会导致临界区的数据混乱,所以需要得以控制。

阻塞与非阻塞(多线程的影响)

阻塞:指线程在操作层面被挂起,一般性能不太好但是特别简单。

非阻塞:运行很多线程同时进入临界区,只要保证不改坏临界区的数据。

死锁,饥饿,活锁

死锁:属于静态的问题,系统卡死,不占用cpu,进程相互占用不释放

饥饿:指某一个或者多个线程无法因某种原因无法获取到所需要资源,导致一直无法执行

活锁:电梯遇人的例子

并行级别

    阻塞

   非阻塞: 无障碍  无锁  无等待

并行相关的2各定律

  1.Amdahl定律

      加速比定义:优化前所需的时间/优化后的所需时间

       n处理器的个数  F 串行比例

       Tn = T1(F-1/n(1-F))     

       加速比=T1/Tn =1/(F+1/n(1-F))

  2.Gustafson定律


上一篇下一篇

猜你喜欢

热点阅读