2009并行计算与多核程序设计05-06线程的基本概念.pptVIP

  • 0
  • 0
  • 约7.25千字
  • 约 44页
  • 2019-10-25 发布于安徽
  • 举报

2009并行计算与多核程序设计05-06线程的基本概念.ppt

* 具有信号量的互斥 Shared data: semaphore mutex; //initially mutex = 1 Process Pi: do { wait(mutex); critical section signal(mutex); remainder section } while (1); * 条件变量 如果要等待某个条件成立(比如xy),当其他线程改变了共享变量的值时,线程应当重新测试该条件 改变共享变量值的线程,给阻塞在条件变量上的线程发信号,唤醒该线程。典型的条件变量cond来测试x=y的方法如下(mut为互斥量): 1 pthread_mutex_lock(mut); 2 while(x=y){ 3 pthread_cond_wait(cond, mut); 4 } 5 pthread_mutex_unlock(mut); * 锁的粒度和死锁 锁的粒度 锁的粒度是上锁后保护的共享数据的多少 减小锁的粒度可以提高对共享数据访问的并行性 死锁 两个线程分别拥有锁,并等待对方的锁 死锁避免 线程以相同的次序进行加锁 非阻塞的加锁操作 饿死 饥饿 – 无限期地阻塞 进程可能永远无法从它等待的信号量队列中移去 当等待时间给进程推进和响应带来明显影响 当饥饿到一定程

文档评论(0)

1亿VIP精品文档

相关文档