zoukankan      html  css  js  c++  java
  • 多线程安全----同步锁(互斥锁)

    多条线程抢夺同一资源时,经常需要加锁,保证同一时间只能有一条线程操作一个资源。

    同步锁就是互斥锁

    格式:@synchronized (token) { }

    token:锁对象,要使用全局的对象,建议使用self

    {} 要加锁的代码段

    注意点:加多把锁是无效的。 要注意加锁的位置。

     互斥锁的优点: 能有效防止多线程因抢夺资源造成的数据安全问题

    互斥锁的缺点:需要消耗大量的cpu资源

    互斥锁使用的前提:多条线程抢夺同一块资源

    相关术语:线程同步

    线程同步就是多条线程在同一条线上执行(按顺序的执行任务)

    互斥锁就是使用了线程同步技术。

    @synchronized (self) {

                

                NSInteger count = self.totalCount;

                if (count > 0) {

                    self.totalCount--;

                    for (int i = 0; i<1000000; i++) {

                        

                    }

                    NSLog(@"票还有%ld张",self.totalCount);

                }else{

                    NSLog(@"票卖完了。。。。");

                    break;

                }

                

            }

  • 相关阅读:
    迷宫 广搜
    steam 字符串hash or map
    Karen与测试 奇迹淫巧+快速幂
    puzzle 期望树形DP
    函数 贪心
    P1032 字串变换 字符串
    等效集合 图论(缩点)
    高斯消元
    loj2537. 「PKUWC2018」Minimax
    loj2538. 「PKUWC2018」Slay the Spire
  • 原文地址:https://www.cnblogs.com/dashengios/p/10386450.html
Copyright © 2011-2022 走看看