美文网首页
互斥锁的简单实现

互斥锁的简单实现

作者: GayLeague | 来源:发表于2018-08-22 22:48 被阅读0次
class Peterson: public Lock
{
   private:
     bool flag[2];
     int turn;
   public:
     void lock() {
        int i = Thread.getId();// 0 or 1
        flag[i] = true;
        turn = j;
        while(flag[j] && turn == j);
      }
      void unlock() {
         int i = Thread.getId();
         flag[i] = false;
      }
}
class Bakery: public Lock {
  private: 
    bool flag[];
    Label label[];
  public:
    Bakery (int n) {
      flag = new bool[n];
      label = new Label[n];
      for(int i=0; i<n; i++) {
        flag[i] = flase;
        label[i]  =  0;
      }
      void Lock() {
         int i = Thread.getId();
         flag[i] = true;               
         label[i] = max(label[0], ..., label[n-1]) +1;
         while((exist k!=i)(flag[k] && label[k]<label[i])
       }
       void unlock() {
          flag[Thread.getId()] = false;
       }
     }
}

非原创,当时记录到本地,突然想起来就发出来了,侵删。

相关文章

  • 互斥锁的简单实现

    非原创,当时记录到本地,突然想起来就发出来了,侵删。

  • 线程锁

    1.常见的锁包括:互斥锁,自旋锁。 2.互斥锁是指锁的类型,自旋锁是指锁的实现方式。 3.互斥锁:当上...

  • go-锁机制

    Golang中的锁机制主要包含互斥锁和读写锁 互斥锁 互斥锁是一种简单的加锁的方法来控制对共享资源的访问,互斥锁只...

  • 互斥锁mutex的简单实现

    mutex一般用于为一段代码加锁,以保证这段代码的原子性(atomic)操作,即:要么不执行这段代码,要么将这段代...

  • Java并发编程——锁与可重入锁

    上一篇文章中讲述了信号量和互斥量,其中互斥量一般用于保证对于资源的互斥访问,和锁的本质一样。本文讲述简单锁的实现和...

  • iOS锁

    锁的作用:保证线程安全。锁的分类:互斥锁,自旋锁,其它比如条件锁,递归锁,信号量都是上层的封装和实现。 互斥锁 防...

  • 网络之美

    线程安全问题----互斥锁和递归锁 互斥锁线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制就是引入互斥锁...

  • 【Java 并发编程实战】使用 AQS 实现一个简单的互斥锁

    使用 AQS 实现一个简单的互斥锁 AQS 是什么? 参考[2]。 CAS自旋 CAS 是Compare And ...

  • 自旋锁和互斥锁的区别

    自旋锁是一种互斥锁的实现方式而已,相比一般的互斥锁会在等待期间放弃cpu,自旋锁(spinlock)则是不断循环并...

  • 自旋锁互斥锁区别

    自旋锁是一种互斥锁的实现方式而已,相比一般的互斥锁会在等待期间放弃cpu,自旋锁(spinlock)则是不断循环并...

网友评论

      本文标题:互斥锁的简单实现

      本文链接:https://www.haomeiwen.com/subject/jzsuiftx.html