
Linux 线程的同步与互斥
线程的互斥 在Posix Thread中定义了一套专门用于线程互斥的mutex函数。mutex是一种简单的加锁的方法来控制对共享资源的存取,这个互斥锁只有两种状态(上锁和解锁),可以把互斥锁看作某种意义上的全局变量。为什么需要加锁,就是因为多个线程共用进程的资源,要访问的是公共区...
线程的互斥 在Posix Thread中定义了一套专门用于线程互斥的mutex函数。mutex是一种简单的加锁的方法来控制对共享资源的存取,这个互斥锁只有两种状态(上锁和解锁),可以把互斥锁看作某种意义上的全局变量。为什么需要加锁,就是因为多个线程共用进程的资源,要访问的是公共区...
线程概述 进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。 线程通常叫做轻量级进程。线程是在共享内存...
文件的创建,打开与关闭 linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。 fopen以mode的方式打开或创建文件,如果成功,将返回一个文件指针,失败则返回NULL fopen创建的文件的访问权限将以0666与当前的umask结合来确定...
UNIX-LINUX套接字描述符 套接字描述符是一个整数值,用于唯一标识进程中的一个开放的网络连接或者套接字 在UNIX和Linux系统中,套接字描述符是一种特殊类型的文件描述符,可以用于表示打开的文件、管道、设备或者网络连接 套接字描述符唯一标识了进程中的一个网络连接 在创建新...
mmap概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。 实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文...
卸载原先VMware的vmtools 安装open-vm-tools 安装pacman -S open-vm-tools 安装gtkmm和gtkmm3 (其实就是默认没有装这两个而已) pacman -S gtkmm pacman -S gtkmm3 重启 reboot
信号 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件)。 信号是硬件中断的软件模拟(软中断)。 每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD、SIGINT等,它们在系统头文件中定义,也可以通过在shell下键入* kill –l查看信号列表,或...
平台相关 select 支持:windows 支持:linux,macos,bsd,aix等 poll 支持:linux,macos,bsd等 不支持:一些交旧的或特定的unix操作系统可能不支持poll 不支持:windows不提供标准的poll,但可以通过其他相似的api来达...
TCP的建立和关闭 复位报文段 在某些特殊的情况,TCP连接的一端会向另一端发送携带RST标志的报文段,即复位报文段,以通知对方关闭连接或重新建立连接。 收到复位报文段的一端应该关闭连接或重新连接,而不能回应这个复位报文段。 异常终止连接 TCP提供了异常终止一个连接的方法,即给...
概述 I/O复用使得程序能同时监听多个文件描述符,这对提高程序的性能很重要。 通常,网络程序在下列情况下需要使用I/O复用技术: 客户端程序要同时处理多个socket。 客户端程序要同时处理用户输入和网络连接。 TCP服务器要同时处理监听socket和连接socket。 服务器要...
搜索当前标签