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)

    {

      //写你想请求的内容

    };

  • 相关阅读:
    Zju1876 Edit Step Ladders
    Candy糖果盒
    哈希
    最长上升子序列 nlogn
    电费结算
    【luoguP5656】二元一次不定方程(gcd,exgcd,裴蜀定理,不定方程初步)
    DP技巧
    高精
    【CSP烤前注意】
    [Jsoi2015] 种花
  • 原文地址:https://www.cnblogs.com/wangzhen-Me/p/4845005.html
Copyright © 2011-2022 走看看