zoukankan      html  css  js  c++  java
  • Linux _pthread 属性的控制

    线程的属性控制

    1. 问题
      某些情况下,子线程创建并运行后,不需要返回到主线程。

      main2.c

      解决方案:
      把该子线程设置为“脱离线程”

    2. 脱离线程的设置
      1) 方式1
      在创建该线程时,设置该线程的属性。 即:
      —————————————————————————-
      /* 定义一个线程属性 attribute */
      pthread_attr_t attr;

       /* 初始化该属性 */
      pthread_attr_init(&attr); 
      
      /* 设置该线程的脱离属性 */
      pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
      ----------------------------------------------------------------------------
      
          /* 使用这个属性创建新线程 */
          pthread_create(&thread, &attr, handle, &arg);
      

      2)方式2
      使用pthread_detach函数。
      例如:pthread_detach(thread);

      注意:使用pthread_join对脱离线程无效!

      注意:线程始终依附于所在的进程。
      当进程中的主线程结束时,该进程也就结束了,
      此时,该进程的所有子线程都将被迫结束。
      所以在主线程要么始终不结束,要么用pthread_join,否则主线程结束后将导致所有其他线程都结束。

    3. 其他线程属性的控制(一般都使用默认属性)
      pthread_attr_setschedpolicy 设置线程的调度方式
      pthread_attr_setstacksize 设置线程的栈大小

      main2.c

    线程的属性控制
    
    1. 问题
        某些情况下,子线程创建并运行后,不需要返回到主线程。
    
        main2.c
    
        解决方案:
        把该子线程设置为“脱离线程”
    
    2. 脱离线程的设置
        1) 方式1
            在创建该线程时,设置该线程的属性。 即:
            ----------------------------------------------------------------------------
            /* 定义一个线程属性 attribute */
            pthread_attr_t  attr;
    
             /* 初始化该属性 */
            pthread_attr_init(&attr); 
    
            /* 设置该线程的脱离属性 */
            pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
            ----------------------------------------------------------------------------
    
                /* 使用这个属性创建新线程 */
                pthread_create(&thread, &attr, handle, &arg);
    
    
        2)方式2
            使用pthread_detach函数。
            例如:pthread_detach(thread);
    
        注意:使用pthread_join对脱离线程无效!
    
        注意:线程始终依附于所在的进程。
                当进程中的主线程结束时,该进程也就结束了,
                此时,该进程的所有子线程都将被迫结束。
                所以在主线程要么始终不结束,要么用pthread_join,否则主线程结束后将导致所有其他线程都结束。
    
    3. 其他线程属性的控制(一般都使用默认属性)
        pthread_attr_setschedpolicy  设置线程的调度方式
        pthread_attr_setstacksize     设置线程的栈大小
    
  • 相关阅读:
    在SharePoint中实现Workflow(2):创建一个Workflow
    pku1384PiggyBank(动态规划)
    pku1088滑雪(记忆性搜索)
    hdu1251统计难题(初次接触字典树)
    详细解说 STL 排序(Sort)
    pku1631Bridging signals(动态规划题+二分搜索)
    pku1157LITTLE SHOP OF FLOWERS(简单动态规划题:摆放鲜花使审美价值达到最高)
    pku1067取石子游戏(博弈)
    pku2524Ubiquitous Religions(初次接触并查集)
    pku1050To the Max(求矩阵的最大子段和)
  • 原文地址:https://www.cnblogs.com/Sico2Sico/p/5384198.html
Copyright © 2011-2022 走看看