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;

                }

                

            }

  • 相关阅读:
    ThinkPHP5.0更改框架的验证方法:对象->validate(true)->save();
    ThinkPHP5.0版本和ThinkPHP3.2版本的区别
    ThinkPHP5.0版本的优势在于:
    11: django-haystack+jieba+whoosh实现全文检索
    10: supervisor进程管理工具
    09: redis集群之sentinel
    08: python支付宝支付
    07: redis分布式锁解决超卖问题
    06:keepalive高可用集群(新)
    05: 使用docker部署nginx负载均衡
  • 原文地址:https://www.cnblogs.com/dashengios/p/10386450.html
Copyright © 2011-2022 走看看