02 2020 档案
摘要:变量捕获会在blcok结构体内部生成一个变量已来存储捕获到的指针或者值 #import "Person.h" @implementation Person /* oc每个函数后面都自带 (Person * self, SEL _cmd) -(void)test:(Person * self, SEL
阅读全文
摘要:1、编写测试代码 并将其转换成c++代码 查看具体实现 进入main.m所在目录 执行 xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m 或者 xcrun -sdk iphoneos clang -arch arm64 -rewri
阅读全文
摘要:pthread_rwlock:读写锁 #import "ViewController.h" #import <Pthread.h> @interface ViewController () @property (nonatomic,assign) pthread_rwlock_t lock; @en
阅读全文
摘要:atomic用于保证属性setter、getter的原子性操作,相当于在getter和setter内部加了线程同步的锁 可以参考源码objc4的objc-accessors.mm 它并不能保证使用属性的过程是线程安全的、比如声明一个atomic数组 同时几个线程往数组加东西 atomic 大多用在M
阅读全文
摘要:#import "ViewController.h" @interface ViewController () @property (nonatomic,assign) int ticket; @end @implementation ViewController - (void)viewDidLo
阅读全文
摘要:#define kSemaphoreBegin \ static dispatch_semaphore_t semaphore; \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ semaphore = disp
阅读全文
摘要:#import "ViewController.h" #import <pthread.h> @interface ViewController () @property (nonatomic, strong) NSCondition *lock; @property (nonatomic, str
阅读全文
摘要:线程同步的本质是每一条线程的同步都是按顺序的 #import "ViewController.h" #import <libkern/OSAtomic.h> @interface ViewController () @property (nonatomic,assign) int ticket; /
阅读全文
摘要:- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ dispatch_queue_t queue = dispatch_get_global_queue(0, 0); dispatch_async(
阅读全文