代码之家  ›  专栏  ›  技术社区  ›  Tom Dalling

有没有可能在操作系统或编程语言级别强制执行无共享多线程处理(OSX,目标-C)

  •  3
  • Tom Dalling  · 技术社区  · 14 年前

    真实的

    强制执行shared nothing规则的一种方法是使用单独的进程,而不是单独的线程,但我认为这太过了,而且会带来严重的开销。我真正想要的是达到同样目的的东西,但要以更轻的方式。有符合这个描述的吗?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Kaelin Colclasure    14 年前

    遗憾的是,对您的问题的简短回答是“没有任何操作系统工具可以强制执行比进程更轻的共享内容。”理论上,对于静态分析工具(如clang)来说,这将是一个有趣的方向,但我现在还不知道有任何这样的工具。

        2
  •  1
  •   Joshua Weinberg    14 年前

    ActorKit

    这是一个小测试,但它的工作。应该给你一个开始最坏情况的地方。

        3
  •  0
  •   Frank C.    14 年前
        4
  •  0
  •   Noah Watkins    14 年前

    对你来说,一个好的方法就是传递信息。两个参与者或线程在他们之间建立了一个通信通道。这个通道的语义可以是复杂的,也可以是简单的。一个简单的语义是消息是原子地编写和使用的。这可用于实现无共享方法,是许多编程模型的首选方法。

    这就是谷歌GO语言使用的模式。