读写锁

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

多线程异步信号处理

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) :获取栈保护区大小。

【linux高级程序设计】(第十二章)Linux多线程编程 4的更多相关文章

  1. linux高级管理第十二章--rsync

    实验部分 1.安装rsync 2.配置文件 3.配置密码 4.后续 5.为了测试,创建几个文件 配置实时同步 1.调整inotify内核参数 安装inotify-tools 测试同步 编写脚本 验证 ...

  2. 读书笔记 - js高级程序设计 - 第十二章 DOM2和DOM3

      Node类型的变化   访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px& ...

  3. 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

    http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...

  4. 鸟哥的linux私房菜——第十二章学习(Shell Scripts)

    第十二章  Shell Scripts 1.0).什么是shell scripts? script 是"脚本.剧本"的意思.整句话是说, shell script 是针对 shel ...

  5. 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

    读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺 ...

  6. 鸟哥的Linux私房菜——第十二章:档案的压缩与打包

    视频链接: 土豆:http://www.tudou.com/programs/view/GncwT0FJKsQ B站(推荐):http://www.bilibili.com/video/av98857 ...

  7. 第三十二章 Linux常规练习题(一)

    一.练习题一 1.超级用户(管理员用户)提示符是____,普通用户提示符是____.2.linux关机重启的命令有哪些 ?3.bash是什么?4.bash特性, 常见的bash特性有哪些?5.网卡的配 ...

  8. 第十二章 Linux三剑客之老三—grep

    一.Linux grep 命令用于查找文件里符合条件的字符串. Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global ...

  9. 【linux高级程序设计】(第九章)进程间通信-管道 1

    Linux操作系统所支持的主要进程间的通信机制. 无名管道 PIPE cat test.txt| grep hello 上面这种管道,将一个命令的输出作为另一个命令的输入,而这种管道是临时的,命令执行 ...

  10. 第十二章Linux文件系统与日志

    1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...

随机推荐

  1. Hibernate---数据操作示例BY实体映射文件

    创建一个Student.java类:该类需要一个无参的构造函数,以及属性的get/set方法 public class Student implements Serializable { privat ...

  2. Hibernate---开发环境搭建

    下载安装Hibernate 在官网http://hibernate.org/tools/上下载eclipse安装插件的文件/安装插件的地址.点击download选择JBoss Tools,选择Arti ...

  3. CSAcademy Palindromic Concatenation 字符串哈希

    题意: 题目链接 给出\(n\)个字符串,求有多少对\((i,j),i \neq j\)使得\(s_i\)与\(s_j\)拼起来是回文串 分析: 设\(s_i,s_j\)的长度分别为\(L_i, L_ ...

  4. Installation error: INSTALL_FAILED_CANCELLED_BY_USER

    我的手机本来是支持Androidstadio 调试手机的,我手机小米的,后来,系统升级了,我也没在意,第二天上班,已运行就报错: Installation error: INSTALL_FAILED_ ...

  5. Android 人脸识别

    Android人脸识别技术,可以参考下面的网站. http://www.faceplusplus.com.cn/ 本项目使用的就是该网站的api. 项目具体使用的技术代码 /** * 用来压缩图片的方 ...

  6. ionic2升级到ionic3并打包APK

    通过IONIC2升级到3的时候,经过我一系列的测试,以及网上各种办法,现将新测有效的方法记录如下,本人按如下方法,对多个项目升级后,都能正常打包成APK IONIC 2到3的升级: 1.拷贝ionic ...

  7. HTTP的缓存控制

    1.缓存的分类: (1)缓存分为服务端侧(server side,比如 Nginx.Apache)和客户端侧(client side,比如 web browser). (2)服务端缓存又分为 代理服务 ...

  8. 剑指Offer - 九度1509 - 树中两个结点的最低公共祖先

    剑指Offer - 九度1509 - 树中两个结点的最低公共祖先2014-02-07 01:04 题目描述: 给定一棵树,同时给出树中的两个结点,求它们的最低公共祖先. 输入: 输入可能包含多个测试样 ...

  9. 《Cracking the Coding Interview》——第13章:C和C++——题目1

    2014-04-25 19:13 题目:用C++写一个读取文件倒数K行的方法. 解法:因为是要取倒数K行,所以我的思路是一行一行地读.过程中需要保存一个长度为K的链表,每次新读到一行都将表头节点移到表 ...

  10. win7 64位如何共享XP上的打印机?

    这个问题看似很简单,但是一旦你遇到了,就会发觉不是想象的那么简单. 除了网上能搜到的一些设置之外,这里还有几个诀窍: 1.首先你必须准备你的打印机的64位驱动程序 2.你在win7上必须采用添加本地打 ...