美文网首页
iOS中的读写安全方案

iOS中的读写安全方案

作者: 有毒的程序猿 | 来源:发表于2019-03-03 15:51 被阅读4次
1、思考如何实现以下场景
  • 同一时间, 只能有一个线程进行写的操作
  • 同一时间, 允许有多个线程进行读的操作
  • 同一时间,不允许既有写的操作,又有读的操作
2、上面的场景就是典型的“多读单写”,经常用于文件等数据的读写操作,iOS中的实现方案有:

pthread_rwlock:读写锁

 // 初始化锁
    pthread_rwlock_init(&_lock, NULL);

    pthread_rwlock_rdlock(&_lock);
    // 读操作    
    pthread_rwlock_unlock(&_lock);

    
    pthread_rwlock_wrlock(&_lock);
    // 写操作
    pthread_rwlock_unlock(&_lock);

dispatch_barrier_async:异步栅栏调用

  dispatch_queue_t queue = dispatch_queue_create("queue_rw", DISPATCH_CURRENT_QUEUE_LABEL);
    dispatch_async(queue, ^{
        // 读操作
    });
    
    dispatch_barrier_async(queue, ^{
        // 写操作
    });

相关文章

  • 四十二、多线程之(六)线程安全--锁(读写锁)

    iOS中的读写安全方案 1.pthread_rwlock (线程读写锁) 2.dispatch_barrier_...

  • iOS中的读写安全方案

    思考如何实现以下场景 同一时间,只能有1个线程进行写的操作 同一时间,允许有多个线程进行读的操作 同一时间,不允许...

  • iOS中的读写安全方案

    1、思考如何实现以下场景 同一时间, 只能有一个线程进行写的操作 同一时间, 允许有多个线程进行读的操作 同一时间...

  • iOS中的文件读写安全方案

    如何实现以下场景,“多读单写”,经常用于文件等数据的读写操作 同一时间,只能有1个线程进行写的操作 同一时间,允许...

  • iOS读写安全方案

    同一时间,只能有1个线程进行写的操作 同一时间,允许有多个线程进行读的操作 同一时间,不允许既有写的操作,又有读的...

  • iOS 安全读写方案

    问题如下: 同一时间, 只能有 1 个线程进行写的操作 同一时间, 允许多个线程进行读的操作 同一时间, 不允许既...

  • iOS的读写安全方案

    Atmotic atomic 只能保证set和get方法内线程安全,比如objc.arry 点语法是安全的,但是[...

  • 多线程:iOS中的读写安全方案

    iOS中的读写安全方案 思考如何实现以下场景同一时间,只能有1个线程进行写的操作同一时间,允许有多个线程进行读的操...

  • 细数iOS中的线程同步方案(一)

    细数iOS中的线程同步方案(一)细数iOS中的线程同步方案(二) 多线程安全问题 多个线程可能访问同一块资源,比如...

  • iOS--@property关键字

    iOS中主要的属性修饰符有下面几种: 读写权限:readonly, readwrite 安全策略:nonatomi...

网友评论

      本文标题:iOS中的读写安全方案

      本文链接:https://www.haomeiwen.com/subject/cidsyqtx.html