c语言创建线程,linux下使用c进行线程操作

 2023-09-23 阅读 13 评论 0

摘要:linux环境下,使用C语言创建一个线程的代码如下所示: pthread_attr_t attr_r;pthread_attr_init(&attr_r);pthread_t threadid_r;int tmp = 0;tmp = pthread_create(&threadid_r,&attr_r,_test_Read,NULL);if(tmp != 0){printf("\n[
linux环境下,使用C语言创建一个线程的代码如下所示:
    pthread_attr_t   attr_r;pthread_attr_init(&attr_r);pthread_t threadid_r;int tmp = 0;tmp = pthread_create(&threadid_r,&attr_r,_test_Read,NULL);if(tmp != 0){printf("\n[test.cpp]:fail pthread_create:_test_Read()\n");return false;}

以阻塞方式等待线程结束的代码:
   int iRes = 0;void* tret;iRes = pthread_join(threadid_r,&tret);if(0!=iRes)printf("[test.cpp]:cannot join with thread:_test_Read ....\n");

线程函数体:
void* _test_Read(void* pParam)
{if(g_ifd <= 0)return NULL;struct input_event event;while(true) {//在这里你可以做你想做的事情printf("\n\n");usleep(1000 * 1000);    }printf("[test.cpp]:_test_Read over\n");
}

需要注意的是在创建线程之后,主线程并不会停止,而是继续执行,如果主线程执行完毕,则你创建的那个线程也会被强制结束,这时如果你不想主程序退出,则需要在主线程中调用pthread_join,让主线程阻塞在那里,好让你创建的线程持续工作。

头文件:#include<pthread.h>

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/91933.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息