Eve*_*one 7 language-agnostic multithreading
如果团队被分配了涉及大量多线程编码的任务,团队是否应该有任何先决条件?
你会找什么?
gbj*_*anb 11
让团队到咖啡厅喝杯,确保只有1汤匙可用.
额外奖励:在其他人放入糖之前搅拌咖啡的人,就输了.
(严肃地说,问问他们,看看谁知道两个线程之间有共享对象的对象成员,以及其他共享资源.请问他们如何防止这种情况,然后问他们如何让你的MT应用程序执行而不会在任何地方放锁.问他们关于死锁.如果他们不知道答案,他们就没有足够的经验,或者需要阅读这个主题并在代码开始后对代码进行良好的设计评审.
线程通常非常复杂且特定于实现,因此我认为评估这一点的唯一有效方法是为它们设置一个模拟任务(在所需的架构中)并“进行它”。涉及竞争的读者/作者/工作者的东西 - 以及 UI(如果需要)。
当然...您还需要有资格的人来评估他们的努力...
你也可以谈论总体原则,但我不确定这是否涵盖了它。举个例子,就在昨天,C# 领域对涉及内存模型、语言规范和 clr 规范的一些微妙问题存在很多困惑。你不能用模糊的术语来评估这种细节;它必须非常具体地解决问题。
同样,每个框架的工具/方法也会发生变化。OCAML / F# 等具有与 Java/C#非常不同的线程代码 - 甚至每个版本都会发生变化(请参阅并行扩展/TPL 与 3.5 中的 ReaderWriterLockSlim 与 2.0 中的 ReaderWriterLock 等内容)
| 归档时间: |
|
| 查看次数: |
583 次 |
| 最近记录: |