自学:pthread_create函数和向线程函数传递参数

先来张自学提问图:

自学:pthread_create函数和向线程函数传递参数_第1张图片
pthread_create().png

自学提问图中的栗子:

(1)线程函数只有一个参数的情况:直接定义一个变量通过应用传给线程函数。
#include 
#include 
using namespace     std;
pthread_t thread;
void fn(void *arg){    
    int i = *(int *)arg;    
    cout<<"i = "<
(2)线程函数有多个参数的情况:这种情况就必须申明一个结构体来包含所有的参数,然后再传入线程函数,具体如下:
首先定义一个结构体:
struct  parameter
{
  int size,
  int count;
  ```
};
然后在main函数将这个结构体指针,作为void *形参的实际参数传递
struct parameter arg;
通过如下的方式来调用函数:
pthread_create(&ntid, NULL, fn,& (arg));
函数中需要定义一个parameter类型的结构指针来引用这个参数
void fn(void *arg){  
  int i = *(int *)arg;    
  cout<<"i = "<

你可能感兴趣的:(自学:pthread_create函数和向线程函数传递参数)