生如夏花

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

tmux使用方法

tmux是一种终端多路复用器:它可以在一个屏幕上创建、访问和控制多个终端。

启动tmux时,它会创建一个带有单一窗口的新会话并显示在屏幕上。 屏幕底部的状态行显示当前会话的信息,并用于输入交互式命令。

本文目前主要记录了一些tmux使用的快捷键。

持续更新中🛵🛵🛵

线程属性

SUS定义了一些系统层面上对于线程的限制,比如进程可以创建的最大线程数、线程栈可用的最小字节数等等。

pthread接口允许我们传入线程或同步对象的属性来调节线程或同步对象的行为。

信号集及相关函数

信号集sigset_t)是表示多个信号的数据类型。

不同的信号编号可能会超过一个整型量的位数,所以不能用整型量中的一位代表一个信号。

POSIX.1定义数据类型sigset_t用以表示信号集,并定义了信号的操作函数。

可靠信号

可靠信号的处理有两个过程如下:

  1. 信号产生:当这些事件(硬件异常(如除以0)、软件条件(如alarm定时器超时)、终端产生的信号或调用kill函数)发生时,内核会为进程产生一个信号,同时在进程表中设置一个标志。
  2. 信号递送:内核使目标进程对该信号作出反应称为信号递送:或是改变目标进程的执行状态(默认动作),或是开始执行信号处理程序,或两者都是。

信号概述

信号是软件中断。

信号提供了一种处理异步事件的方法。

信号用于大多数复杂的应用程序中。

Unix系统的早期版本就已经提供了信号机制,但不可靠。POSIX.1对可靠信号例程进行了标准化。

线程同步之屏障

屏障(barrier)是用户协调多个线程并行工作的同步机制。

屏障允许每个线程等待,直到所有的合作线程都到达某一点,然后从该点继续执行。

pthread_join是一种特殊的屏障,允许一个线程等待,直到另一个线程退出。

线程同步之条件变量

互斥量防止多个线程同时访问同一共享变量。

条件变量允许一个线程就某个条件(共享变量)的变化状态通知其他线程,并让其他线程等待(阻塞于)该通知。

条件变量与互斥量一起使用,允许线程以无竞争的方式等待特定的条件发生。

线程同步之读写锁

读写锁也称为共享互斥锁,具有3种状态:读模式下的加锁状态写模式下的加锁状态不加锁状态

一次仅有一个线程可以占有写模式下的读写锁,但是多个线程可以同时占有读模式下的读写锁。

读写锁非常适合于对数据结构读的次数远大于写的情况

与互斥量相比,读写锁(reader-writer lock)运行更高的并行性。

线程同步之互斥量

当多个线程共享相同的内存时,需要确保每个线程看到的都是一致的数据视图。

当一个线程可以修改的变量,其他线程也可以读取或修改的时候,就需要对这些线程进行同步,确保访问变量时不会得到无效的值。