Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 进程中线程的资源依赖关系是什么? 我编写了一个C++代码,它在进程中创建N个线程。当创建的线程数为6个或少于6个时,它可以工作,当我尝试创建7个线程时,进程崩溃。 原因是什么? -七,_Linux_Multithreading_Raspberry Pi_Linux Device Driver_Embedded Linux - Fatal编程技术网

Linux 进程中线程的资源依赖关系是什么? 我编写了一个C++代码,它在进程中创建N个线程。当创建的线程数为6个或少于6个时,它可以工作,当我尝试创建7个线程时,进程崩溃。 原因是什么? -七,

Linux 进程中线程的资源依赖关系是什么? 我编写了一个C++代码,它在进程中创建N个线程。当创建的线程数为6个或少于6个时,它可以工作,当我尝试创建7个线程时,进程崩溃。 原因是什么? -七,,linux,multithreading,raspberry-pi,linux-device-driver,embedded-linux,Linux,Multithreading,Raspberry Pi,Linux Device Driver,Embedded Linux,16384 -6787 -91 我用于创建线程的代码段: pthread_t *thread; int iret1; uint8_t i; char commandBuffer[8192]; if(argc <=1) { DEBUG("pass rasp system id\n"); return -1; } DEBUG("SETTING SYSTEM TIME\n"); system("sudo date -s \"$(wget -qSO- --max-redirec

16384

-6787

-91

我用于创建线程的代码段:

pthread_t *thread; int iret1; uint8_t i; char commandBuffer[8192];
if(argc <=1) 
{
    DEBUG("pass rasp system id\n");
    return -1;
}
DEBUG("SETTING SYSTEM TIME\n");
system("sudo date -s \"$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z\"");
DEBUG("Initializing wiring pi\n");
wiringPiSetup();
usleep(1000000);
DEBUG("Initialized wiring pi\n");
thread = (pthread_t*)malloc(sizeof(pthread_t)*TOTAL_I2CBUSLINES); 
if (thread == NULL)
{
    DEBUG("out of memory\n");
    exit(EXIT_FAILURE);
}


/* Create independent threads each of which will execute function */
for(i = 0; i < TOTAL_I2CBUSLINES;i++)
{
    iret1 = pthread_create( &thread[i], NULL, ina219Read_thread_func, (void*) &gdc[i]);
    if(iret1)
    {
     fprintf(stderr,"Error - pthread_create() return code: %d\n",iret1);
     exit(EXIT_FAILURE);
    }

    DEBUG("\nSuccesfully created I2C line for: %d", i);
}
pthread\u t*线程;int iret1;uint8_t i;char命令缓冲区[8192];
如果(argc&1 | grep日期:| cut-d'-f5-8)Z\);
调试(“初始化布线pi\n”);
wiringPiSetup();
美国LEEP(1000000);
调试(“初始化的接线pi\n”);
线程=(pthread_t*)malloc(sizeof(pthread_t)*总线总数);
如果(线程==NULL)
{
调试(“内存不足”);
退出(退出失败);
}
/*创建独立的线程,每个线程都将执行函数*/
对于(i=0;i<总母线;i++)
{
iret1=pthread_create(&thread[i],NULL,ina219Read_thread_func,(void*)&gdc[i]);
如果(iret1)
{
fprintf(stderr,“Error-pthread_create()返回代码:%d\n”,iret1);
退出(退出失败);
}
调试(“\n成功地为%d创建了I2C线”,i);
}

您使用的是两个数组“thread”和“gdc”。查看他们的索引是否超出范围。

不,索引没有超出范围。