GNU 线程创建实例
main.cpp:
#include <iostream>
#include <pthread.h>
#include "util.h"
using namespace std;
/*
typedef unsigned long int pthread_t;
extern int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t *__attr,
void *(*__start_routine) (void *), void *__arg));
*/
int main()
{
pthread_t t1,t2;
int i1=1,i2=2;
pthread_create(&t1,NULL,function,&i1);
pthread_create(&t2,NULL,function,&i2);
for(int i=0;i<10;i++)
{
cout<<"main"<<i<<endl;
}
void * result1,* result2;
pthread_join(t1,&result1);
pthread_join(t2,&result2);
cout<<"thread joined with result:"<<endl;
cout<<*(int *)result1<<" "<<*(int *)result2<<endl;
delete (int *)result1;delete (int *)result2;
return 0;
}
util.h:
void* function(void*);
util.cpp:
#include <iostream>
using namespace std;
void* function(void* p)
{
int flag=0;
if(p)
flag = *((int *)p);
for(int i=0;i<10;i++)
{
cout<<"func"<<flag<<" "<<i<<endl;
}
int * result = new int;
*result = (*(int *)p) + 2;
return (void*) result;
}
编译时请加: -lpthread 链接选项
本文的知识来自:
http://blog.csdn.net/xxxymxhh/article/details/6655396
Aurora 极光城
讲技术,说人话