Linux多线程编程技术在掷骰子游戏模拟程序中的应用
2016-07-02申时全广东科技学院计算机系广东东莞523000
网络安全与数据管理 2016年9期
申时全(广东科技学院计算机系,广东东莞523000)
Linux多线程编程技术在掷骰子游戏模拟程序中的应用
申时全
(广东科技学院计算机系,广东东莞523000)
为了模拟概率事件,针对掷骰子游戏规则,应用Linux系统下C语言多线程机制以及多个二值信号量以实现多个线程间循环同步。通过伪随机数模拟掷骰子的点数,设计并实现了一个基于多线程方式模拟4人掷骰子游戏程序,并对1 000次游戏中每个游戏者获胜的次数进行统计。可以看出,在多次游戏中,每个游戏者获胜的概率符合概率分布规律。程序运行结果表明,利用信号量可有效实现多个线程间的同步与互斥,并简化了程序结构。
多线程;线程同步;随机数;掷骰子游戏程序
O 引言
概率事件是日常生活中经常会遇到的,如出现某种状况的可能性,产品出现故障的几率等。本文通过一个模拟掷骰子游戏程序来模拟人们在某种博弈规则下的获胜概率。采用线程编程模式,用一个线程模拟一个游戏者掷下6个骰子,并按一定规则给出“叫点”数。通过1 000次游戏,统计出每个游戏者获胜次数N,则获胜概率为N/1 000。
线程是Linux系统的一个执行序列,其处于进程中,多个线程共享同一进程的存储空间和资源。操作系统以进程为单位分配资源并进行调度。但在多进程并发运行的系统中,进程调度开销比较大[1]。按一般定义:线程是一个进程内部的一个控制序列。在一个进程中创建新的线程运行时,该线程会拥有自己的运行栈,并与创建它的线程共享全局变量等系统资源。……
登录APP查看全文
