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;

                }

                

            }

  • 相关阅读:
    C#在与java对接时候的UrlEncode的坑
    sql server 删除大量数据的一次坑爹之旅
    js实现黑客帝国文字下落效果
    第一个SignalR案例
    简单的放天灯动画
    计量单位符号的书写规范【转】
    阿里云OSS搭建移动应用直传服务的.Net C#示例
    UWP Windows10开发更新磁贴和动态更新磁贴
    UWP Windows10开发获取设备位置(经纬度)
    Asp.Net识别手机访问
  • 原文地址:https://www.cnblogs.com/dashengios/p/10386450.html
Copyright © 2011-2022 走看看