b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

与多线程相关的问题(关于pthread_join()的使用)

电脑杂谈  发布时间:2020-06-24 22:08:52  来源:网络整理

c pthread create_c同时启动多个pthread_c语言pthread create

多线程问题(关于pthread_join()的使用)

环境: ubuntu6.06 + gc.0.3

我要编写一个如下所示的基于多线程的程序代码(请注意注释):

#include

#include

#include

c同时启动多个pthread_c语言pthread create_c pthread create

void * pthr(void * str)

{

printf(“第一%d \ n”,(int)str);

sleep(3);

printf(“再次%d \ n”,(int)str);

返回NULL;

c语言pthread create_c同时启动多个pthread_c pthread create

}

int main()

{

pthread_t pth;

int i;

for(i = 0; i <500; ++ i)

c语言pthread create_c pthread create_c同时启动多个pthread

{

pthread_create(&pth,NULL,pthrc同时启动多个pthread,(void *)(i));

pthread_join(pth,NULL); //这里!!!

}

sleep(10);

返回0;

c pthread create_c同时启动多个pthread_c语言pthread create

}

可以执行此代码,但是由于短语“ pthread_join(pth,NULL); //这里!!!”,它不是真正的多线程,因为它总是创建一个线程并等待它结束并重复(这是我的个人理解),但这不是我想要的(我希望多个线程一起执行). 因此,我删除了“ pthread_join”行(在我看来,当线程结束时,它应该自动释放资源),但是实际的运行时程序仅创建了382个线程并结束了.

我的问题是:

1. 创建线程是否有上限?如果没有c同时启动多个pthread,为什么该程序只创建382个线程并结束.

2. 线程结束时将释放所有资源(不调用pthread_join).

3. 如果我同时运行多个线程,该如何管理(我想不到这个示例,创建一个示例,等待结束,然后创建下一个示例)

------解决方案--------------------

如果您需要分割线程序,则无需加入.

如果不是,则与您的示例一样好. 设置状态

使用一个线程作为回收线程,如果有线程程序处于死状态,则加入该线程


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-257273-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 唐思言
        唐思言

        加工过程就算有虫卵也会烤熟了

      热点图片
      拼命载入中...