首页 > 试题广场 >

请你说一下多线程的同步,锁的机制

[问答题]

请你说一下多线程的同步,锁的机制

1.互斥锁(mutex):保证在任何时候都只有一个进程读或者写。获取锁对象失败时会进入睡眠状态
2.读写锁(rwlock):写者优先读者,一旦有一个写者其他所有进程必须等待。没有写者时,允许多个读者进行读操作。
3.自旋锁(sinlock):在任何时候只能有一个进程访问对象,但是获取锁操作失败时,不会进入睡眠,而是在原地自旋,直到锁被释放。(优点是节省了线程从睡眠状态到唤醒状态的时间消耗)
发表于 2020-06-28 20:44:28 回复(0)
  • 锁机制

  •  1.互斥锁(mutex):保证在任何时候都只有一个进程读或者写。获取锁对象失败时会进入睡眠状态
  • 2.读写锁(rwlock):写者优先读者,一旦有一个写者其他所有进程必须等待。没有写者时,允许多个读者进行读操作。
  • 3.自旋锁(sinlock):在任何时候只能有一个进程访问对象,但是获取锁操作失败时,不会进入睡眠,而是在原地自旋,直到锁被释放。(优点是节省了线程从睡眠状态到唤醒状态的时间消耗)
  • 4.rcu(read-copy-updata):在修改数据时,先读取数据,然后生成一个副本,对副本进行修改,修改完成之后,讲老数据更新。(几乎不需要同步开销,大量读操作,少量写操作,效率非常高)
发表于 2020-03-25 22:57:34 回复(0)