死锁帝国-开发者游戏


如您所知,Habr不是游戏场所,但我们发现了一个例外,我们认为值得在此提及!

满足:死锁帝国

游戏的本质是管理流程的布局,流程的代码在任务中给出。您需要以一种解决错误情况的方式来管理它:死锁,重复计数器,到达代码的某些部分以及在开发多线程应用程序时需要实现的其他不可预见的情况。

游戏性是调试器中程序流的逐步执行,不同之处在于,您实际上是在告诉告诉线程执行下一行代码,而不是在其代码中插入断点。通常,一次执行一行代码,但是如果该行代表一种非原子操作,则必须手动对其进行扩展以一次执行一次其组成操作。但是,您无法完全控制这种情况:例如,如果某个进程在互斥锁上被阻止,则该进程将处于非活动状态,直到另一个线程释放它为止。

任务按复杂性排序并分为几部分:

  1. 不同步的代码本节中的任务提供使用共享线程安全资源的线程并行运行时发生的基本概念。
  2. . , , .
  3. . , .
  4. . , !
  5. . , .
  6. . , : , , !

该示例代码是用C#编写的,并且同步原语来自.Net,但是即使您不熟悉任何一种,也不应感到害怕。最低的编程知识和英语阅读能力(所有任务都提供注释和文档链接)很可能会叫您至少达到中级水平。好吧,老年人(甚至23岁)肯定会击败将出现在决赛中的老板!甚至那些在流的同步上吃了饭的人也将有很好的时间解决有趣的问题,因为作者设法使现实生活中的乐趣变成了开发人员最糟糕的噩梦之一。

这款游戏非常有用,可以作为学习工具,并且至少在.Net和Java中,强烈建议所有新手开发者使用。 

我们祝大家星期五愉快,并能战胜老板!:)

All Articles