贡献者: addis
参考这里。其中第二个例子(编译时使用 -lpthread
选项):
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
int g = 0;
void *myThreadFun(void *vargp)
{
int *myid = (int *)vargp;
static int s = 0;
++s; ++g;
printf("Thread ID: %d, Static: %d, Global: %d\n", *myid, ++s, ++g);
}
int main()
{
int i;
pthread_t tid;
for (i = 0; i < 3; i++)
pthread_create(&tid, NULL, myThreadFun, (void *)&tid);
pthread_exit(NULL);
return 0;
}
pthread_create
第一个参数会赋值给 tid
,第二个参数是输入一些 attributes,要默认就用 NULL
,第三个参数是函数指针,第四个是函数参数。函数调用在 tid
被赋值以后。
std::thread
大同小异。
pthread_cancel(p1)
写一下。