我需要模拟一个游戏,每个玩家轮流进行操作并需要“关注”游戏进程。
目前,我已经知道需要为每个玩家使用两个线程,一个将休眠直到该玩家的回合,另一个负责关注游戏进程。
我的问题是:我应该将每个玩家作为“fork”,并在fork上使用线程?还是只创建一些线程并将它们与玩家相关联?
这是我第一次使用并发、信号量和线程,所以我不确定好的实践和编程风格。
我需要模拟一个游戏,每个玩家轮流进行操作并需要“关注”游戏进程。
目前,我已经知道需要为每个玩家使用两个线程,一个将休眠直到该玩家的回合,另一个负责关注游戏进程。
我的问题是:我应该将每个玩家作为“fork”,并在fork上使用线程?还是只创建一些线程并将它们与玩家相关联?
这是我第一次使用并发、信号量和线程,所以我不确定好的实践和编程风格。
我应该将每个玩家作为“fork”并在“fork”上运行线程,还是只创建一些线程并将其与玩家相关联?
除非你被要求使用fork
,否则我建议避免使用它——在Unix进程之间进行通信的机制并不是很易于使用。如果你能获取Hanson库,我建议为每个玩家创建一个线程,并使用Hanson的channels让玩家之间(以及与游戏服务器,它也应该是一个线程)进行通信。