Rholang中国社区
  • 主题帖
  • 版块
  • 用户
  • forum
  • group
  • search
  1. 主题帖
  2. 新手问题
chevron_left 新手问题

第一次Rholang 中国区学习小组在线研讨

  • forum 2 条回帖
  • Guoyingxu 于 2019年3月28日 最后回帖
  • 最后
  • link
    Dimworm
    愁虫 66帖子
    2019年3月15日 15:00 2019年3月15日 15:00
    link

    时间:2019年3月21日,周四晚上10点
    内容:Rholang如何优雅地解决dining philosophers问题
    时长:1小时
    主持:愁虫
    会议链接: zoom.us/j/353688314
    1. 用petri nets图描述一种正确的解决方法:(动图)
    petrinets.gif

    2 用python的线程锁的实现方法:

    from threading import Thread, Lock
    
    # Set the table
    fork = Lock()
    knife = Lock()
    
    # Philosopher 1's plan
    
    def plan1():
     while True:
       if fork.acquire(False):
         if knife.acquire(False):
           print("Philosopher 1 is full.")
           knife.release()
         fork.release()
    
    phil1 = Thread(target=plan1)     
    
    # Likewise for philosopher 2
    
    def plan2():
     while True:
       if knife.acquire(False):
         if fork.acquire(False):
           print("Philosopher 2 is full.")
           fork.release()
         knife.release()
    
    phil2 = Thread(target=plan2)     
    
    # Hard to give them a fair start in a sequential language
    phil1.start()
    phil2.start()
    

    3 用Rholang优雅地实现:

    new log(`rho:io:stdout`), north, south, knife, spoon in {
      // Set the table
      north!(*knife) |
      south!(*spoon) |
    
      // Philosopher 1's plan
      for (@knf <- north; @spn <- south) {
        log!("Philosopher 1 is full.") |
        north!(knf) |
        south!(spn)
      } |
    
      // Likewise for philosopher 2
      for (@spn <- south; @knf <- north) {
        log!("Philosopher 2 is full.") |
        north!(knf) |
        south!(spn)
      }
    }
    

    注:代码来自Joshy的例子:blog.rchain.coop/blog/2018/09/15/rholang-vs-the-dining-philosophers/

    关注微信公众号:WechatIMG408.jpeg

    WechatIMG408.jpeg

    JPG, 49.6 KB, 被 Dimworm上传于2019年3月17日。

    petrinets.gif

    GIF, 175.6 KB, 被 Dimworm上传于2019年3月15日。

    SunShine800 赞了这个

    favorite 1

  • visibility_off

    帖主题已经被隐藏

    • 被Dimworm于2019年3月15日 15:00.
  • visibility

    主题帖已经被重现

    • 被Dimworm于2019年3月16日 20:08.
  • link
    Dimworm
    愁虫 66帖子
    2019年3月22日 11:04 2019年3月22日 11:04
    link

    workshop的视频已经上传:
    1 B站:
    www.bilibili.com/video/av46969722/

    2 油管:
    www.youtube.com/watch?v=NEfBim3woRw&feature=youtu.be

  • link
    Guoyingxu
    Members 1帖子
    2019年3月28日 10:39 2019年3月28日 10:39
    link

    视频看了,不明觉厉!大赞

这个主题帖中没有其他帖子。

  • 本站由Rholang爱好者共同维护, 歪脑袋(WeNode.io) POS矿池提供技术服务
powered by misago