zoukankan      html  css  js  c++  java
  • 【linux高级程序设计】(第十二章)Linux多线程编程 4

    读写锁

    书上有读者写者的代码,我实在是懒得实现一遍了。跟之前的代码差不多。

    多线程异步信号处理

    int pthread_kill (pthread_t __threadid, int __signo) :发送信号。第二个参数为0时表示检测指定线程是否存在。成功返回0.

    int pthread_sigmask (int __how, __const __sigset_t *__restrict __newmask, __sigset_t * __restrict __oldmask) :设置调用线程的信号掩码。

    参数一:表示方法,包括 SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK

    书上有个例子,同样懒得抄....

    线程属性控制

    线程属性结构体包括

    pthread_t pthread_self (void) : 获取线程ID。该ID在一个进程中唯一,但在不同的进程中可能相同。

    syscall(SYS_gettid) : 获取线程的pid, 是唯一的。 不能用ps命令查看

    int pthread_attr_init (pthread_attr_t *__attr) : 初始化线程属性对象

    默认的属性值为:

    int pthread_attr_destroy (pthread_attr_t *__attr) :销毁一个已经初始化的线程属性

    获取/设置线程分离状态or可连接状态

    int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate) : 设置detachstate属性

      PTHREAD_CREATE_DETACHED :处于分离状态

      PTHREAD_CREATE_JOINABLE :可连接状态(默认)

    int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, int *__detachstate) : 获取detachstate属性

    栈相关属性

    int pthread_attr_setstacksize(pthread_attr_t *__attr, size_t __stacksize) :设置栈大小 PTHREAD_STACK_MIN表示最小值,其他数字就是具体值。

    int pthread_attr_getstacksize(__const pthread_attr_t *__restrict __attr, size_t *__restrict  __stacksize) :获取栈大小

    int pthread_attr_setstackaddr(pthread_attr_t *__attr, void *__stackaddr) :设置栈地址

    int pthread_attr_getstackaddr(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) :获取栈地址

    int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize) :设置栈保护区大小。用于溢出保护。

    int pthread_attr_getguardsize (__const pthread_attr_t *__attr, size_t *__guardsize) :获取栈保护区大小。

  • 相关阅读:
    DPDK 多进程
    dpdk helloword
    dpdk-ring-ping
    【基于python实现UI自动化】3.0 selenium
    算法题:实现 strStr()函数
    python程序设计:某体操比赛共有10名运动员参加,12名评委将根据运动员表现进行评分(满分10分),请编写Python程序,解决下列问题:
    Scrapy框架实战(五):通用爬虫 CrawlSpider
    python爬虫爬取_高德地图_主要城市迁徙意愿排行榜_19年至今数据
    年轻就该多尝试,教你20小时Get一项新技能
    LeetCode:283.移动零——简单
  • 原文地址:https://www.cnblogs.com/dplearning/p/4690794.html
Copyright © 2011-2022 走看看