cocos2d-x3.2 下使用多线程

其实在cocos2dx下使用多线程其实就是用C++去写,这里提供几个简单的例子:

原文地址:http://blog.csdn.net/qqmcy/article/details/36227377

1、

//
//  PublicScene.cpp
//  testthirdone
//
//  Created by 杜甲 on 14-7-1.
//

void hello()
{
    log("hello thread");
}

bool PublicScene::init()
{
    bool bRet = false;
    do {
        CC_BREAK_IF(!Scene::init());

        std::thread t1(hello);
        t1.join();
        log("主线程");

		  bRet = true;
	  } while (0);
	  return bRet;
}

        std::thread t1(hello);
        t1.join();
        log("主线程");

2、

//
//  PublicScene.cpp
//  testthirdone
//
//  Created by 杜甲 on 14-7-1.
//
//

void hello()
{
    log("hello thread");
}

bool PublicScene::init()
{
    bool bRet = false;
    do {
        CC_BREAK_IF(!Scene::init());

        std::vector<std::thread> threads;
        for (int i = 0; i < 5; ++i)
        {
            threads.push_back(std::thread([ = ]()
            {
                log("%s",StringUtils::format(" thread %d",i).c_str());
            }));
        }

        for (auto& thread :threads) {
            thread.join();
        }

        log("Main Thread");

		  bRet = true;
	  } while (0);
	  return bRet;
}

3、

//
//  PublicScene.cpp
//  testthirdone
//
//  Created by 杜甲 on 14-7-1.
//
//

void hello()
{
    log("hello thread");
}

bool PublicScene::init()
{
    bool bRet = false;
    do {
        CC_BREAK_IF(!Scene::init());

        std::mutex m;
        std::thread t1([&m](){
            m.lock();
            for (int i = 0; i < 10; i++) {

                log("%s",StringUtils::format(" thread1 %d",i).c_str());

            }
             m.unlock();
        });

        std::thread t2([&m](){

            m.lock();
            for (int i = 0; i < 10; i++) {

                log("%s",StringUtils::format(" thread2 %d",i).c_str());

            }
             m.unlock();
        });

        t1.join();
        t2.join();

        log("Main Thread");

		  bRet = true;
	  } while (0);
	  return bRet;
}

cocos2d-x3.2 下使用多线程

时间: 2024-10-13 00:21:52

cocos2d-x3.2 下使用多线程的相关文章

Linux下模拟多线程的并发并发shell脚本

分享一个在Linux下模拟多线程的并发脚本,使用这个脚本可以同时批量在定义数量的服务器上执行相关命令,比起普通for/while循环只能顺序一条一条执行的效率高非常多,在管理大批服务器时非常的实用.     以下脚本功能是通过scp(也可选rsync)向上千台服务器传更新包,脚本运行后同时在后台有50个scp进程向服务器传包.#!/bin/baship=`cat iplist.txt|grep -v "#"|awk '{print $1}'`   #过滤服务器IPdir='/usr/l

linux下的多线程

1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux. 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题. 使用多线程的理由之一是和进程相比,它

【转】Linux下的多线程编

作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/07/2807484.html 本文作者: 姚继锋 (2001-08-11 09:05:00) 黄鹏程(2009-03-13) converse (2009-01-15) 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传

【转】Linux下的多线程编程

1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows也包括Linux.  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题.  使用多线程的理由之一是和进程相比,它是一种非

C#实现http协议下的多线程文件传输

用C#实现HTTP协议下的多线程文件传输转自  http://developer.51cto.com/art/201105/263066_all.htm C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言.下面主要介绍的是用C#实现H

Linux下的多线程编程

1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支 持,包括Windows也包括Linux. 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题. 使用多线程的理由之一是和进程相比,它是一种非常

Linux 下基于多线程服务器/客服端聊天程序源码

Linux 下基于多线程服务器/客服端聊天程序,采用阻塞的socket技术,和多线程技术实现. 客服端程序:client.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h>

浅谈.NET下的多线程和并行计算(一)前言

作为一个ASP.NET开发人员,在之前的开发经历中接触多线程编程的机会并不是很多,但是随着.NET 4.0的发布临近,我越来越感受到未来的1-2年中并行计算将会有很大的应用.于是决定通过写日志的方式来总结一下.NET 3.5下的多线程编程进而引入.NET 4.0提供的新的并行库以及新的并行编程模式和编程的思维方式. 个人觉得在日常的编程中对于ASP.NET程序员来说使用多线程编程不是很多,其实我们无时无刻不在享受多线程的优势.首先,WEB服务器环境就是一个多线程环境,每一个请求都是独立的线程,如

多线程编程之Linux环境下的多线程(一)

一.Linux环境下的线程 相对于其他操作系统,Linux系统内核只提供了轻量级进程的支持,并未实现线程模型.Linux是一种“多进程单线程”的操作系统,Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程. 进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量).Linux中所谓的“线程”只是在被创建时clone了父进程的资源,因此clone出来的进程表现为“线程”,这一点一定要弄清楚.因此,Linux“线程”这个概念只有在打冒号的情况下才是