美文网首页
2017.01.01 多线程学习(一)

2017.01.01 多线程学习(一)

作者: superhandsome | 来源:发表于2017-01-01 20:32 被阅读69次

经过了前一段时间的学校的抢课刷课,尤其感觉到了多线程的重要性,在新年第一天也是我第一次写感悟,请大家多提建议和意见。

1.并发(concuurency)与并行(parallelism)的区别

并行:即平行,几个线程同时执行

并发:一个线程依据时间片(时钟周期)有顺序的不停执行几个任务(每次可能都只执行一小部分就切换到下一任务)有个调度的过程

2.并发级别

2.1阻塞:可能发生死锁(deadlock),饥饿(starvation),活锁(livelock)

    死锁:不同线程同时持有一个程序所需要的部分资源且互相等待对方线程释放资源,自己不释放 掉。

    饥饿:一个或多个线程因为一些原因如优先级低,数据竞争原子操作总是失败等长时间无法得到需要的资源。

    活锁:发生死锁后,所有线程全部释放资源,然后A,B线程分别持有对方资源再发死锁,如此递归下去,程序依然无法继续。

2.2非阻塞:无障碍,无锁,无等待;(发生条件由弱到强)

     1.无障碍:

a.最弱的菲阻塞调度

b.自由出入临界区

c.无竞争,有限部内完成操作

d.有竞争时回滚数据

2.无锁(最常用):

a.是无障碍的

b.每次循环保证有一个线程可以胜出

while(!atomicvar.compareandset(thread1,thread1+1))

{

thread1=atomicvar.get();

}

3.无等待(并发最高级别,可让系统保持流畅):

a.无锁

b.所有线程有限步完成

c.无饥饿的

相关文章

  • 2017.01.01 多线程学习(一)

    经过了前一段时间的学校的抢课刷课,尤其感觉到了多线程的重要性,在新年第一天也是我第一次写感悟,请大家多提建议和意见...

  • 无标题文章

    2016.12.25---2017.01.01 2017.01.01---2017.01.20 2017.02.0...

  • Hi 2017

    2017.01.01 立Flag吗? 主线是进步,进步,进步。 方法是学习学习再学习。 做时间的朋友,走得更远,体...

  • 数据分析(一): 《R语言实战》

    2016.12.31~2017.01.01开始学习R语言 计划利用元旦3天假期学完《R语言实战》1~7章粗略学习...

  • 2017.01.01

    2017的第一天。 雾霾。天色渐晚,戴着口罩的我在潮湿的雾里走着,边走边哼着歌。在复印店安静的订完所有资料,问小哥...

  • 2017.01.01

  • 2017.01.01

    今天与跑友们一起来到了心心念念的“厦门”,本来是想带上海宝一起来厦门大学走走,厦门小吃吃吃,由于他今天有个“迎春杯...

  • 2017.01.01

    2017!新年伊始,是时候展现真正的技术...呃,是时候计划今年的各项事宜了。 还有二十多天的春节,将要动身去鹭岛...

  • 2017.01.01

    又是新的一年,有种怅然若失的感觉。觉得自己一年复一年,没有什么改变。其实这也是可以理解,每个人都有安逸圈,每个人都...

  • 2017.01.01

    本命年感觉会思考更多的东西,因为强烈的觉得自己要走向成熟以及成为一个更有能力的人。 在过年前我将辞...

网友评论

      本文标题:2017.01.01 多线程学习(一)

      本文链接:https://www.haomeiwen.com/subject/ewuivttx.html