文档章节

iOS多线程之互斥锁

JlongTian
 JlongTian
发布于 2016/01/07 21:18
字数 343
阅读 70
收藏 2

1.安全隐患解决-互斥锁

  • 互斥锁使用格式

@synchronized(锁对象) { // 需要锁定的代码  }
注意:锁定1份代码只用1把锁,用多把锁是无效的
  • 互斥锁的优缺点

        优点: 能有效防止因多线程抢夺资源造成的数据安全问题

        缺点:需要消耗大量的CPU资源

  •  互斥锁的使用前提:多条线程抢夺同一块资源

  •  相关专业术语:线程同步

        线程同步的意思是:多条线程按顺序地执行任务

        互斥锁,就是使用了线程同步技术

2.原子性和非原子性

  •  OC在定义属性时有nonatomic和atomic两种选择

     atomic:原子属性,为setter方法加锁(默认就是atomic)

     nonatomic:非原子属性,不会为setter方法加锁

  •  atomic加锁原理

@property (assign, atomic) int age;
- (void)setAge:(int)age
{
    @synchronized(self) {
        _age = age;
    }
}

3.原子性与非原子性的选择

  •  nonatomic和atomic对比

     atomic:线程安全,需要消耗大量的资源

     nonatomic:非线程安全,适合内存小的移动设备

  •  iOS开发的建议

    所有属性都声明为nonatomic

    尽量避免多线程抢夺同一块资源 

    尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力

© 著作权归作者所有

JlongTian
粉丝 3
博文 308
码字总数 148393
作品 0
深圳
程序员
私信 提问
iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码

iOS精选源码 全网最详细购物车强势来袭(http://www.code4app.com/thread-10664-1-1.html) 一款优雅易用的微型菜单弹窗(类似QQ和微信右上角弹窗)(http://www.code4app.com/thread-12069-1-1....

Android爱开源
01/23
0
0
线程安全: 互斥锁和自旋锁(10种)

无并发,不编程.提到多线程就很难绕开锁🔐. iOS开发中较常见的两类锁: 1. 互斥锁: 同一时刻只能有一个线程获得互斥锁,其余线程处于挂起状态. 2. 自旋锁: 当某个线程获得自旋锁后,别的线程会...

Dariel
2018/11/15
0
0
多线程安全-iOS开发注意咯!!!

多线程,作为实现软件并发执行的一个重要的方法,也开始具有越来越重要的地位! 正式因为多线程能够在时间片里被CPU快速切换,造就了以下优势 资源利用率更好 程序设计在某些情况下更简单 程...

iOS开发_小迷糊
05/08
0
0
iOS多线程编程:线程同步总结 NSCondtion

1:原子操作 - OSAtomic系列函数 iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件<libkern/OSBase.h>。不同线程如果通过原子操作函数对同一变量进行操作,可以保证一个线程的...

zhipengbird
2014/10/21
0
0
iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码

iOS精选源码 iOS高仿微信完整项目源码(http://www.code4app.com/thread-14695-1-1.html) Khala: Swift 编写的iOS/macOS 路由框架(http://www.code4app.com/thread-31586-1-1.html) 微信左滑删......

Android爱开源
01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基础工具类

package com.atguigu.util;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid......

architect刘源源
今天
41
0
P30 Pro劲敌!DxO官宣新机:排行榜又要变

5月26日晚间,DxOMark官方推特预告,将在5月27日公布一款新机型的DxOMark评分,猜猜是哪款? 网友猜想的机型有:红米K20、谷歌Pixel 3a、索尼Xperia 1、诺基亚9 PureView等。 DxOMark即将公布...

linux-tao
昨天
15
0
Ubuntu18.04.2窗口过小不能自适应(二次转载)

解决Ubuntu在虚拟机窗口不能自适应 2018年09月06日 16:20:08 起不了名儿 阅读数 855 此博文转载:https://blog.csdn.net/nuddlle/article/details/77994080(原地址) 试了很多办法这个好用 ...

tahiti_aa
昨天
2
0
死磕 java同步系列之CountDownLatch源码解析

问题 (1)CountDownLatch是什么? (2)CountDownLatch具有哪些特性? (3)CountDownLatch通常运用在什么场景中? (4)CountDownLatch的初始次数是否可以调整? 简介 CountDownLatch,可以...

彤哥读源码
昨天
6
0
Nginx提供下载apk服务

有时候我们可能需要提供文件或者其他apk下载链接,通过 nginx 配置可以很简单地实现。 server {    listen 80;    server_name download.xxx.com;    root app;    locati...

Jack088
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部