zoukankan      html  css  js  c++  java
  • 线程和线程同步(pthread)

    pthread  ==> clone()

                                           pthread_create()     

                                           pthread_join()的作用是接受返回值

                   主线程可以用pthread_exit();来按线程的方式退出

    pthread_t   

                                            pthread_self ()  取当前线程的标识符

                                             pthread_equal() 比较

    数据的键 :        pthread_key_t key; 线程数据( TSD )TSD 类似于全局变量,但是线程私有的

                                           pthread_key_create()该函数成功时,份配的建放在 key 中,必须保证 key 指向的内存区有效 。

                                           pthread_key_destructor() 用来释放不再需要的内存。

                                           pthread_key_delete()

                                           pthread_setspecific()    设置和某个线程数据键绑定在一起的线程数据 (一般是指针)

                                           pthread_getspecific() 获取绑定在线程数据键上的值,并在指定的位置存储值

    sched  cpu线程的优先权

                                    sched_yield() 让出线程

                                    pthread_setschedparam()设置线程优先权

                                    pthread_getschedparam()取得线程优先权

    kill  向线程发信号          

                                        pthread_kill()

                                         pthread_sigmask()

                                       pthread_atfork()

    exit 

                                          pthread_exit()      分离的目的是不管线程什么情况直接对资源清理,不分离可以保留

    pthread_exit( &status );终止当前线程,所有绑定在线程键上的内存将释放。如果当前线程是未分离的,该线程的标识符和推出代码( status )被保留,直到其它线程用 pthread_join() 等待当前线程的终止。如果当前线程是分离的, status 被忽略,线程标识符立即收

    pthread_cond_wait 条件等

    attr     线程属性

                                       pthread_attr_init    初始化一个线程属性对象,属性值是缺省值,占用内存由线程库分配。

    属性对象的缺省值:scope (线程域) PTHREAD_SCOPE_PROCESS ; Detachstate (分离状态) PTHREAD_CREATE_JOINABLE;Stackaddr (堆栈地址) NULL Stacksize (堆栈大小) 1Mb;  priority (优先级) 父进程优先级  ; Inheritsched ( 继承调度优先级)PTHREAD_INHERIT_SCHED; schedpolicy (调度策略) SCHED_OTHER


    创建线程时,如果指定这个线程为分离线程,一旦这个线程终止,他的线程标识符和其他相关的资源可以立即被使用。如果不需要等待某个线程终止,可以把它设定为分离

  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6333019.html
Copyright © 2011-2022 走看看