美文网首页
2020MIT 6.824分布式系统笔记(二)

2020MIT 6.824分布式系统笔记(二)

作者: 加油11dd23 | 来源:发表于2021-01-30 22:48 被阅读0次

    一、go特点

    • type safe
    • goroutine(多线程工作)
      线程有独立的寄存器,程序计数器 ,栈(同一个地址空间)

    (1)reason for using multi spread to program

    • I/O concurrency(并发)
    • Parallelism(多核)
    • convenience(周期性检查)

    discussion
    event driven programming(异步)
    trigger -> thread
    process vs thread address space
    线程切换

    (2)spread challenges

    • 共享内存share memory (JVM)
      RACE: n = n+1 (global int) n = n+1
    1. lock
    2. not share data
      mvlock variable
      mv.Unblock

    discussion
    1.有些指令是atom 有些指令不是
    32bit storm -> atomic
    microprocessor不一定是atomic
    2.private lock
    map 内部有一个私有锁
    多余的锁开销
    两个锁会造成死锁,private不能解决思索

    • coordination(线程同步)
    1. channel
    2. condition variable sync.cond
    3. waitGroup
    • Deadlock


      image.png

    二、go语言编程实例 --- 爬虫

    串行代码


    image.png

    并行代码共享内存


    image.png
    • waitgroup
    • race tracker 不是做静态分析

    并行代码channel(channel可以当作一个队列)


    image.png

    相关文章

      网友评论

          本文标题:2020MIT 6.824分布式系统笔记(二)

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