第七章同步与进程间的通信.pptVIP

  • 12
  • 0
  • 约2万字
  • 约 64页
  • 2015-08-31 发布于重庆
  • 举报
第七章同步与进程间的通信.ppt

第七章 同步及进程间通信 线程同步 进程同步 进程间通信 7.1 线程同步(1) 线程同步基础 由于同一进程可包括多个线程,这些线程又共享相同的内存空间,不同的线程可以存取相同的全局变量、相同的堆数据和文件描述符等。 对于多线程非共享数据,考虑服务器的安全性问题,可采用线程专用数据TSD等方法解决。 对于多线程共享数据和进程资源时必须使用同步机制。 例如: struct employee { int id; char name[10];} 若两个线程同时修改一个结构,就可能造成数据的不一致性,必须通过同步机制予以控制。 7.1 线程同步(2) 互斥锁概念 互斥锁是提供线程同步的一种机制,是一种锁,用以保护线程代码中共享数据结构的完整性,其特点为: 对互斥锁的操作(加锁/解锁)是原子操作,操作系统保证同时只有一个线程能成功完成对一个互斥锁的加锁操作。 若一个线程已经对某一互斥锁进行了加锁,其他线程只有等待该互斥锁被解锁后,才能完成加锁操作。 若一个线程已经对某一加锁的互斥锁进行了加锁操作,该线程被挂起,待该互斥锁被解锁后,该线程被唤醒并完成加锁操作。 注意:可使用以下伪代码实现数据完整性: 加锁互斥锁 … …(修改共享变量) 解锁互斥锁 7.1 线程同步(3) 互斥锁的初始化和消除 使用互斥锁前,必须对其进行初始化;不用时,应撤消它 静态初始化方法

文档评论(0)

1亿VIP精品文档

相关文档