首页   注册   登录

petelin

  •   Grab / 后端开发工程师
    V2EX 第 167941 号会员,加入于 2016-04-12 22:36:03 +08:00
    今日活跃度排名 5391
    北京医保自己缴纳部分是不是不让取现了?
    北京  •  petelin  •  38 天前  •  最后回复来自 irgil
    22
    个税真是厉害呀, 越减越多
    水深火热  •  petelin  •  59 天前  •  最后回复来自 lance6716
    150
    请问这段 Go 代码会内存泄漏吗?
    Go  •  petelin  •  105 天前  •  最后回复来自 Licsber
    13
    程序里的民主与独裁
    程序员  •  petelin  •  114 天前  •  最后回复来自 petelin
    5
    petelin 最近回复了
    不对啊 你要是链接的正好是那一小部分节点就有可能 master 写入了 你读不到
    @petelin 没说清楚, 就是必须要 condition 调用了 wait 之后在调用 singal 才能解除阻塞, 提前调用 singal 是不行的



    @lihongjie0209 java 太啰嗦了, 入口函数去通知 A 启动就可以了
    @zealot0630 这样写可以吗? signal 好像要等, 对应的 wait 的时候才可以生效(我就偷懒利用 goroutine 启动完的时间差)
    @petelin fix bug, 因为我想要在 for 循环一次就打出来 0:A 0:B 0:C 就得一直等不能跳过循环. 或者每次自己打印的时候记录一下自己打了多少次.满足就返回
    @zealot0630 难道要创建三个 condition 然后挨个传递?
    @petelin 有 bug 我在看下
    上一个 go 的版本
    ```
    package main

    import (
    "fmt"
    "sync"
    "time"
    )

    var l = sync.Mutex{}
    var cond = sync.NewCond(&l)

    var turn = 0

    func main() {
    s := []string{"A", "B", "C"}
    for _, item := range s{
    go func(x string) {
    for i := 0; i < 10; i++ {
    l.Lock()
    if s[turn] == x{
    // my turn
    fmt.Println(i, x)
    turn = (turn+1) % 3
    cond.Broadcast()
    }
    cond.Wait()
    l.Unlock()
    }
    }(item)
    }
    time.Sleep(time.Hour)
    }

    ```
    我看着挺好的呀, 什么是亮点, 手撸一个 vue 出来?
    联系方式?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   864 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 23:05 · PVG 07:05 · LAX 16:05 · JFK 19:05
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1