gpt4 book ai didi

代码段错误(核心转储)pthread 创建

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:21 24 4
gpt4 key购买 nike

<分区>

我是线程编程的新手,正在尝试学习如何创建线程。我已经创建了一个线程并传递了参数,但是在执行过程中,我遇到了段错误。使用地址空间时可能出现故障。代码如下。

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <time.h>
#include <unistd.h>

struct task_spec_struct
{
char task_type;
int period,r_min,r_max;
}s1;

int gen_rand(int a, int b)
{
srand(time(NULL));
int x = a+(rand()%(b-a));
return x;
}

//task body to utilize CPU to perform computations

void* periodic_task(void* arg)
{
struct task_spec_struct *arg_struct = (struct task_spec_struct*) arg;


int rand_num = gen_rand(arg_struct->r_min, arg_struct->r_max);
while(1)

{
int i, j=0;
for(i=0; i<rand_num; i++)
{
j=j+i;
}
usleep((arg_struct->period)*1000);
printf("Executing thread1");
}
pthread_exit(0);
}


int main(int argc, char **argv)
{
int num_args = argc-1;
// Creating pthread for periodic task ( runs Thread function to run periodically)
printf("Give task with specifications");
s1.task_type= 'P';
s1.period= 300;
s1.r_min= 400;
s1.r_max= 500;

pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(tid, &attr, periodic_task, &s1);



pthread_join(tid, NULL);

}

请提供任何可能的反馈。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com