本篇接上篇继续讲:上篇传送门:http://blog.csdn.net/star530/article/details/24186783
简单的东西我都说的差不多了,想挖点深的差点把自己给填进去。下面实际演练一下。请允许我参考偶尔E往事的一篇线程的博客, 他用的是pThread,这里我就用std::thread。
1.售票
孙鑫老师的C++和Java多线程售票也一直让我念念不忘(好吧,我承认我没看过),这里用cocos2d-x3.0和C++11的std::thread实现一个吧。总共有100张诺亚方舟船票,有2个售票点A和B在售票(一张票就一百亿美元吧),当票卖完了就结束了。我们知道当程序一开始进程就会创建一个主线程,所以可以在主线程基础上再创建2个线程A和B,再线程A和B中分别售票,当票数为0的时候,结束线程A和B。
2.多线程售票,代码如下:
//HelloWorld.h
class HelloWorld : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(HelloWorld);
void myThreadA();//线程A
void myThreadB();//线程B
int tickets;//票数
};
//.cpp
bool HelloWorld::init()
{
if ( !Layer::init

本文是Cocos2d-x 3.0多线程系列的第二部分,通过实例介绍如何使用C++11的std::thread实现多线程售票系统。文章首先回顾上篇内容,然后深入探讨售票场景,模拟2个售票点A和B同时售票,确保线程安全。通过互斥锁mutex防止数据竞争,确保线程同步。
最低0.47元/天 解锁文章
9248

被折叠的 条评论
为什么被折叠?



