• 线程和线程同步(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


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

  • 相关阅读:
    Informatica 常用组件Lookup缓存之五 使用动态查找高速缓存
    Informatica 常用组件Lookup缓存之四 使用不高速缓存的查找或静态高速缓存
    Informatica 常用组件Lookup缓存之三 重建查找高速缓存
    Golang入门教程(十一)beego 框架之RESTful Controller 路由
    PHP7 学习笔记(十二)PHPExcel vs PhpSpreadsheet and PHP_XLSXWriter
    PHP7 学习笔记(十二)gRPC
    PHP7 学习笔记(十一)使用phpstudy快速配置一个虚拟主机
    Golang入门教程(十)内建函数
    Golang入门教程(九)复合数据类型使用案例二
    Golang入门教程(八)复合数据类型使用案例一
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6173306.html
Copyright © 2020-2023  润新知