当前位置: 首页 > news >正文

网站开发工期安排建设银行租房平台网站6

网站开发工期安排,建设银行租房平台网站6,semifinal,WordPress文章格式美化linux下线程分离属性 一、线程的属性---分离属性二、线程属性设置2.1 线程创建前设置分离属性2.2 线程创建后设置分离属性 一、线程的属性—分离属性 什么是分离属性#xff1f; 首先分离属性是线程的一个属性#xff0c;有了分离属性的线程#xff0c;不需要别的线程去接合… linux下线程分离属性 一、线程的属性---分离属性二、线程属性设置2.1 线程创建前设置分离属性2.2 线程创建后设置分离属性 一、线程的属性—分离属性 什么是分离属性 首先分离属性是线程的一个属性有了分离属性的线程不需要别的线程去接合自己的(回收自己的资源)。 a.线程的分离属性有两种分离态detached和非分离态joinable。 b.非分离态的线程只有在调用pthread_join之后才会完全释放自己所占用的资源可以用pthread_detach函数将线程修改为分离态分离态的线程在线程结束后由系统自动释放其所占用的所有资源 c.线程创建后默认属性是非分离态需要调用pthread_join释放线程所占用的资源 但是虽然说是分离的但是进程退出了该线程还是会退出的。 总结 设置了分离属性的线程 - 不需要pthread_join() 设置了非分离属性的线程 - 需要pthread_join() - 默认创建的普通属性线程就是非分离线程。 退出进程所有子线程都会消亡系统会回收他们资源。 如果设置为非分离属性的线程且不去回收子线程资源那么一个进程创建的子线程数据是有限请下面程序环境ubuntu20.04 64位 #include stdio.h #include pthread.h #include stdlib.h #include unistd.h//定义退出的值为全局变量 int retval 10;//子线程 void *start_pthread(void *arg) {int cnt 0;printf(arg:%ld\n, *((unsigned long *)arg));}int main(void) {int cnt 0;unsigned long val 0;pthread_t thread_id;//主线程 运行时间比子线程时间长主线程运行退出后回收子线程资源while (1){//线程创建 非分离int ret pthread_create(thread_id, NULL, start_pthread, val);if(ret ! 0){printf(pthread_create fail\n);return -1;} val;}printf(接合子线程成功\n);return 0;}运行效果 如果不设置为分离属性主不回收子线程资源创建到32749条时创建线程失败 二、线程属性设置 线程属性设置通常有两个种一种是在创建前设置好分离属性别一个种是线程运行后再设置线程属性接下来先看第一种情况。 2.1 线程创建前设置分离属性 线程创建前设置分离属性就是添加一个分离属性到一个属性变量中然后使用属性变量去创建一个线程那么创建出来的线程就是具有分离属性的线程。 接下来看函数 1定义一个属性变量 - 数据类型pthread_attr_t pthread_attr_t attr;2初始化属性变量。 - pthread_attr_init() - man 3 pthread_attr_init #include pthread.h int pthread_attr_init(pthread_attr_t *attr);参数 attr未初始化的属性变量 返回值 成功0 失败非0错误码 3设置分离属性到属性变量中。 #include pthread.h int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);参数 attr已经初始化过的属性变量 detachstate PTHREAD_CREATE_DETACHED - 分离属性 PTHREAD_CREATE_JOINABLE - 非分离属性 等同于 pthread_create(thread_id, NULL, start_pthread, val); 返回值 成功0 失败非0错误码 4使用属性变量去创建一个新的线程。 pthread_create(tid,attr,.....); - 创建出来的线程就是分离属性的线程不需要pthread_join()5销毁属性变量。 - pthread_attr_destroy() - man 3 pthread_attr_destroy int pthread_attr_destroy(pthread_attr_t *attr);参数 attr已经初始化过的属性变量 返回值 成功0 失败非0错误码 案例代码 #include stdio.h #include pthread.h #include stdlib.h #include unistd.h//定义退出的值为全局变量 int retval 10;//子线程有分离--不需要接合 void *start_pthread(void *arg) {int cnt 0;printf(arg:%ld\n, *((unsigned long *)arg));}int main(void) {int cnt 0;unsigned long val 0;pthread_t thread_id;//定义分享属性变量 pthread_attr_t attr;//初始化属性变量pthread_attr_init(attr);//设置线程属性--分离属性pthread_attr_setdetachstate(attr, PTHREAD_CREATE_DETACHED);//主线程 运行时间比子线程时间长主线程运行退出后回收子线程资源while (1){//线程创建 分离属性int ret pthread_create(thread_id, attr, start_pthread, val);if(ret ! 0){printf(pthread_create fail\n);return -1;} val;}printf(接合子线程成功\n);return 0;}分离属性后的线程可以自动消亡主线程可以无限创建子线程。 2.2 线程创建后设置分离属性 先创建一个普通线程(分享属性设置为NULL, 默认的分享属性为不分离)然后在线程中调用一个设置分离属性的函数那么这个线程就变成分离的属性。 1设置线程本身的属性为分离属性。 - pthread_detach() - man 3 pthread_detach #include pthread.h int pthread_detach(pthread_t thread);函数作用 设置分离属性给线程 参数 thread需要设置分离属性的线程的ID号 返回值 成功0 失败非0错误码 2获取线程的ID号。 - pthread_self() - man 3 pthread_self #include pthread.h pthread_t pthread_self(void);参数 无 返回值线程的ID号。 案例 #include stdio.h #include pthread.h #include stdlib.h #include unistd.h//子线程 void *start_pthread(void *arg) {int cnt 0;//获取线程IDpthread_t thread_id pthread_self();//分离线程int ret pthread_detach(thread_id);if(ret ! 0){printf( pthread_detach fail\n);exit(0);}printf(arg:%ld\n, *((unsigned long *)arg));}int main(void) {unsigned long val 0;pthread_t thread_id;//主线程 运行时间比子线程时间长主线程运行退出后回收子线程资源while (1){//线程创建 默认为非分离int ret pthread_create(thread_id, NULL, start_pthread, val);if(ret ! 0){printf(pthread_create fail\n);return -1;} val;}return 0;}设置了分离属性之后子线程可以无限被创建。
http://www.dnsts.com.cn/news/231992.html

相关文章:

  • 企业网站开发设计做迅雷下载电影类网站会侵权么
  • 网站建好了怎么做才赚钱青岛网页设计哪个公司好
  • 惠州网站建设科技有限公司外贸网站推
  • 云南交投集团公路建设有限公司网站做公司网站的企业
  • 南县网站开发装修设计网站排行榜
  • 建设个人你网站金山企业型网站建设
  • 素材网站视频深圳中高端网站建设怎么样
  • vs2012网站开发环境设计外贸网站建设
  • 什么网站做免单衣服wordpress设置网站主题
  • 个人主页界面网站惠州市建设局建工办网站
  • 给我一个网站2021手机网站做静态路径
  • 男男床上爱做 网站logo在线设计生成器小程序
  • aspx网站开发 案例用别人的二级域名做网站
  • 网站分站系统去掉网站侧边栏
  • 网站建设公司 优势28网站建设
  • 寿光专业做网站的公司有哪些沈阳企业模板建站
  • 视频网站开发项目网站开发文案模板
  • 龙华网站建设方案咨询微信小程序模板开发
  • 怎样做网站平台赚钱吗电子信息工程移动互联网方向
  • 企业做网站需要花多少钱怎么才能创建一个网站
  • 北京建设信息咨询中心网站策划公司招聘
  • 信息课做网站的软件wordpress博客批量发布
  • 建设大马路小学网站做擦边球的网站
  • 网站建设公司实力自己接单的平台
  • 南京工程网站建设成都网站定制开发
  • 网站建设的重要性与价值面料做电商 哪个网站好
  • 老薛主机做两个网站动物自己做的网站
  • 目前做啥网站致富贵阳建网站公司
  • 微官网和手机网站一样吗做网站到底怎么赚钱
  • 湛江制作企业网站静态网站开发