#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>
typedef struct {
int year;
int month;
int day;
char name[10];
}data_test;
void task_2(void)
{
int num = 0;
printf("creat task2 succful\r\n");
while(1)
{
num++;
printf("exit task2 \r\n");
if (num == 10)
pthread_exit(0);
}
}
void task_1(void* param)
{
pthread_t task2_id;
data_test *revc_data = (data_test *) param;
printf("year = %d\r\n", revc_data->year);
printf("month = %d\r\n", revc_data->month);
printf("day = %d\r\n", revc_data->day);
printf("name = %s\r\n", revc_data->name);
int ret = pthread_create(&task2_id, NULL, (void*)task_2, NULL);
if (ret < 0) {
printf("创建任务失败\r\n");
} else {
printf("创建任务succful\r\n");
}
pthread_detach(task2_id);
}
int main(void)
{
pthread_t tid;
data_test data;
data.year = 2023;
data.month = 1;
data.day = 2;
memcpy(data.name, "zcj", sizeof(data.name));
int ret = pthread_create(&tid, NULL, (void*)task_1, &data);
if (ret < 0) {
printf("创建任务失败\r\n");
return -1;
}
pthread_join(tid, NULL);
return 0;
}
linux c语言 创建线程任务
于 2023-01-02 17:30:34 首次发布