Swift 加锁
来源:互联网 发布:淘宝上传图片 编辑:程序博客网 时间:2024/05/18 20:46
let str = "a"
func operation(a:String){
objc_sync_enter(a) // 没有objc_asyn_xxxx
print("做一些操作,在这个操作的过程中,a保持不被修改")
objc_sync_exit(a)
}
// 封装
Lock.swift
func Lock(object:AnyObject, callBack:()->()){
print("开始执行,加锁!")
objc_sync_enter(object)
print("执行中...")
callBack()
objc_sync_exit(object)
print("执行完毕,解锁")
}
// 实例:
// let object = "aaa"
// Lock(object) { () -> () in
// print("锁住\(object)")
// }
// 编译会报错:
// var object:String = "aaa"
// Lock(object) { () -> () in
// print("锁住\(object.insert("A", atIndex: 0))")
print("开始执行,加锁!")
objc_sync_enter(object)
print("执行中...")
callBack()
objc_sync_exit(object)
print("执行完毕,解锁")
}
// 实例:
// let object = "aaa"
// Lock(object) { () -> () in
// print("锁住\(object)")
// }
// 编译会报错:
// var object:String = "aaa"
// Lock(object) { () -> () in
// print("锁住\(object.insert("A", atIndex: 0))")
// }
0 0
- Swift 加锁
- 加锁
- 加锁
- 加锁
- 加锁
- 加锁
- 加锁
- 加锁
- 厕所~加锁
- sql 加锁
- 文件加锁
- 加锁类
- 文件加锁
- 文件加锁
- 多线程加锁
- 加锁 synchronize
- 客户端加锁
- 文件加锁
- 一些简单配置模板方便使用echarts 3.2.0
- 移动APP安全
- 【职坐标】 java基础内容汇总
- 数据结构:遍历一次获得链表的倒数第N个节点
- 字节对齐
- Swift 加锁
- android安装内核module,提示Required key not
- jsp显示数据库的查询结果
- 微信硬件平台设备直连全讲解(6)设备端SDK导入和设备登陆
- iOS 如何把项目托管到GitHub
- opencv_contrib 添加cuda支持
- 【USACO TRAINING】数字金字塔(DP)
- Animation and Graphics partⅡ Property Animation
- android应用如何在发布市场时关掉所有的Log日志输出