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;

                }

                

            }

  • 相关阅读:
    Python 标准库 BaseHTTPServer 中文翻译
    DBA Scripts
    cordova开发自己定义插件
    ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
    com.apple.installer.pagecontroller 错误 -1 pkg安装错误
    Apple 远程推送APNS 服务
    bitbucket git push 项目503失败
    在xcode5下利用Source Control 做 git 项目管理
    iOS设备定位服务开启判定
    has been modified since the precompiled header地图错误
  • 原文地址:https://www.cnblogs.com/dashengios/p/10386450.html
Copyright © 2011-2022 走看看