码迷,mamicode.com
首页 > 编程语言 > 详细

线程锁

时间:2015-09-28 22:19:12      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

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)

{

  //写你想请求的内容

};

线程锁

标签:

原文地址:http://www.cnblogs.com/wangzhen-Me/p/4845005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!