我需要在下面的代码中添加线程,有什么快速的方法吗?
int main() {
ObjectType obj1;
ObjectType obj2;
printMaze(obj1, obj2);
getUserInput(obj1, obj2);
return 0;
}
void printMaze(ObjectType&obj1, ObjectType&obj2){
///
///
///
}
void getUserInput(ObjectType&obj1, ObjectType&obj2){
///
///
///
}
我希望能够在单独的线程中调用printMaze和getUserInput,并让它们使用相同的变量[本质上共享一个变量]。
答案 0 :(得分:0)
就在我的脑海中,这是在Mac上实现线程的一种非常快捷的方法
#include <stdio.h>
#include <time.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
//contains all the information needed
struct AllInfo{
ObjectType obj1;
ObjectType obj2;
};
int main() {
srand(time(NULL));
pthread_t printingThread;
pthread_t inputThread;
AllInfo info;
pthread_create(&printingThread, NULL, &printMaze, &info);
pthread_create(&inputThread, NULL, &getUserInput, &info);
pthread_exit(NULL);
return 0;
}
void *printMaze(void * infoArg) {
AllInfo *info;
info= ( AllInfo *)infoArg;
///
///
pthread_exit(NULL);
}
void *getUserInput(void *infoArg) {
AllInfo *info;
info= (struct AllInfo *)infoArg;;
////
////
pthread_exit(NULL);
}
你会发现一些事情
将参数传递给将在线程中调用的函数时,