zoukankan      html  css  js  c++  java
  • OC原理之读写锁

    iOS中读写安全方案

    读写锁区别于线程锁,读写锁允许多个线程去读,但是去写的时候保证只有一个在写

    pthread_rwlock

    // 初始化锁
    pthread_rwlock_init(&_lock, NULL);
    
    // 加读锁
    pthread_rwlock_rdlock(&_lock);
    
    // 尝试加读锁
    pthread_rwlock_tryrdlock(&_lock);
    
    // 解锁
    pthread_rwlock_unlock(&_lock);
    
    // 加写锁
    pthread_rwlock_wrlock(&_lock);
    
    // 尝试加写锁
    pthread_rwlock_trywrlock(&_lock);
    
    // 销毁锁
    pthread_rwlock_destroy(&_lock)

    dispatch_barrier_async

    相当于一个栅栏,如果是读操作,会立一个栅栏,让所有的读操作都过去,直到有一个写操作,此时再力

    立起栅栏,在这个写操作的结束,再立起一个栅栏一次类推

    dispatch_queue_create("rw_queue", DISPATCH_QUEUE_CONCURRENT);// 创建一个并行队列
    
    dispatch_async(self.queue, ^{
        // read操作
    });
    
    dispatch_barrier_async(self.queue, ^{
        // 写操作
    });
  • 相关阅读:
    PHP和Ajax设置页面请求超时
    Flex 布局教程
    数据库访问优化法则
    phpcms网站搬家至服务器
    phpcms网页替换验证码及搜索功能
    php判断手机段登录
    php环境搭建
    ThinkPHP框架
    JQuery事件
    JQuery
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/14449141.html
Copyright © 2011-2022 走看看