- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 知识梳理------线程同步
一、为什么要线程同步 当多个控制线程共享相同的内存时,需要每个线程看到一致的数据视图。 共享资源,多个线程都可对共享资源操作 线程操作共享资源的先后顺序不确定 处理器对存储器的操作一般不是原子操作 二、互斥量 <1> 互斥量从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,下访问完成后释放互斥量上的锁。对互斥量加锁之后,任何视图再次对互斥量加锁的线程都将被阻塞,直到给
2016-09-10 17:59:44 287
原创 知识梳理------线程
一、 线程的概念 <1> 进程与线程的关系线程是轻量级进程,也有PCB。创建线程使用的底层函数和进程一样,都是clone().从内核来看,进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表是相同的。进程可以蜕变为线程在linux中,进程是资源分配的最小单位,线程是最小的执行单位。<2> 线程间共享的资源文件描述符表每种信号的处理方式当前工作目录用户ID和
2016-09-08 11:44:45 256
原创 知识梳理------进程(三)
进程间通信续 <5> 信号量(Posix) 信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语。 包括:Posix有名信号量。使用Posix IPC名字标识,可用于进程或线程间的同步。Posix基于内存的信号量。存放在共享内存区,可用于进程或线程间的同步。System v信号量。在内核中维护,可用于进程或线程间的同步。Posix信号量可以不必在内核中维护。另外,Po
2016-09-06 21:22:32 346
原创 I/O复用------epoll
<1> 内核事件表 epoll是Linux特有的I/O复用函数,在实现和使用上与poll和selec有所不同。首先,epoll使用一组函数来完成任务,而非单个函数epoll把用户关心的文件描述符上的事件放在内核的一个事件表中,从而无需像select和poll那样每次调用都要从新传入描述符集或事件集。1) epoll_create 创建一个额外的文件描述符,来唯一标识
2016-09-03 18:27:19 254
原创 知识梳理------进程(二)
一、进程间通信 每个进程都有各自不同的用户地址空间,任何一个进程得 全局变量在另一个进程中都是不可见的,即进程之间要交换数据必须要通过内核。(在内核中开辟一块缓冲区,进程A把数据从用户空间拷贝到内核空间缓冲区中,进程B在从内核缓冲区中把数据读走)<1> pipe管道 (使用队列实现,一般时环形队列,默认阻塞) 管道是一种基本的IPC机制,实现就是在内核中开辟缓冲区。
2016-09-01 11:48:28 267
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人