⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 benthread.cpp

📁 GPU实现的MapReduce framework,对于学习并行编程和cuda平台的编程方面有着极好的参考价值
💻 CPP
字号:
/*
 *System-independent library.
 *Written by Wenbin FANG (wenbin@cse.ust.hk)
 *
 *COMPILE MACROS:
 *1, __UNIX__ or __WIN32__
 *2, __TIMER__
 *3, __DEBUG__
 *4, __CUDA__
 */
#include "BenLib.h"

#ifdef __UNIX__
BenThread_t BenNewThread(void *(*start_routine)(void*),  void *arg)
{
	BenThread_t threadId = -1;
	int rc = -1;

	rc = pthread_create(&threadId, NULL, start_routine, (BenVoid *)arg);

	if (rc != 0) return -1;

	return threadId;
}

void BenExitThread(void *status)
{
	pthread_exit(status);
}

void BenWaitForSingle(BenThread_t id)
{
	pthread_join(id, NULL);
}

void BenWaitForMul(BenThread_t* ids, int num)
{
	int i;
	for (i = 0; i < num; i++)
	{
		pthread_join(ids[i], NULL);
	}		
}
#else //__UNIX__
BenThread_t BenNewThread(void *(*start_routine)(void*),  void *arg)
{
	BenThread_t thread = CreateThread(NULL, 0, 
		(LPTHREAD_START_ROUTINE)start_routine, arg, 0, NULL);
	return thread;
}

void BenExitThread(void *status)
{
	ExitThread(0);
}

void BenWaitForSingle(BenThread_t id)
{
	WaitForSingleObject(id, INFINITE);
}

void BenWaitForMul(BenThread_t* ids, int num)
{
	WaitForMultipleObjects(num, ids, TRUE, INFINITE);
}
#endif //__WIN32__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -