zoukankan      html  css  js  c++  java
  • 线程锁

    1.当多个线程  同时抢夺一个公共资源时,为了防止这个公共资源被同时修改,需要对资源加锁   

    2.当一个线程对资源加锁之后,只有当前线程可以修改资源内容,其他线程不可以修改.只有在当前线程修改完毕,把锁打开,其他线程才能使用公共资源

    实现上述方法的又两种

    (1).锁NSLock * _Lock;

    (2).同步块@synchronized(self){};

     

    例子如下:

     _Lock=[[NSLock alloc]init];

     dispatch_queue_t queue= dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

        dispatch_async(queue, ^{

    //        加上锁

    //        [_Lock lock];

            if (_totalTickets>=1)

            {

                _totalTickets=_totalTickets-1;

            }

    //        打开锁

    //        [_Lock unlock];

        });

    2.把队列中的内容写入到同步快中去

    @synchronized(self)

    {

      //写你想请求的内容

    };

  • 相关阅读:
    (一)ngxin默认虚拟主机
    centos7 搭建LNMP
    centos7 搭建安装zabbix3.0邮件告警实例(二)
    Java BitSet(位集)
    OLTP与OLAP的区别
    Cassandra-LSM树
    LSM树
    Docker
    RESTful API
    kubernetes介绍
  • 原文地址:https://www.cnblogs.com/wangzhen-Me/p/4845005.html
Copyright © 2011-2022 走看看