C++学习之路--10

守护进程

会话:进程组的更高一级,多个进程组对应一个会话。
进程组:多个进程在同一个组,第一个进程默认是进程组的组长,创建会话的时候,组长不可以创建,必须是组员创建。
创建会话的步骤:创建子进程,父进程去死,子进程自当会长。
守护进程的步骤:
创建子进程fork,父进程退出,子进程当会长setsid,切换工作目录$HOME ,设置掩码umask 关闭文件描述符0,1,2 为了避免浪费资源, 执行核心逻辑, 退出。
nohup指令可以达到守护进程创建的效果
nohup cmd [> 1.log] &

线程

线程man page 安装
sudo apt-get install manpages-posix-dev
线程的概念:轻量级的进程,一个进程内部可以有多个线程,默认情况下一个进程只有一个线程。
线程是最小的执行单位,进程是最小的系统资源分配单位。内核实现都是clone函数实现的
ps -Lf 进程号 查看指定线程的LWP号
线程共享资源:内存共享空间
线程非共享资源:线程ID, 处理器线程和栈指针,独立的栈空间,errno变量,信号屏蔽字,调度优先级
获得错误码对应的信息:char * strerror(int errnum);
优点:提高并发性,占用资源小,通信方便
缺点:调试麻烦,库函数不稳定,对信号支持不好。
shell中vi的快捷键
set -o vi
在家目录下.bashrc增加
alias echomake=‘cat~/bin/makefile.template>>makefile’
线程退出函数
pthread_exit 或者 return
exit退出进程
pthread_join 回收线程
pthread_create();创建一个线程
pthread_cancel()杀死一个线程
pthread_cancel()需要传入tid,成功返回0,被pthread_cancel杀死的线程,退出状态为PTHREAD_CANCELED #define pthread_canceled (void*) -1)
pthread_testcancel强制设置取消点
pthread_detach()线程分离
pthread_equal函数,比较两个线程是否相等
restrict约束该块内存区域对应的数据,只能通过后面的变量进行访问修改

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值