7月 052016
 

当我们strace -c pid的时候,经常会发现futex占用大量时间,如下图:

那么, futex究竟是个什么东西呢?

futex – Fast Userspace Locking system call

一般来讲,futex是用于多线程程序中线程同步使用的; futex本身不是一个锁,但是可以利用这个机制实现锁。

传统的多线程同步是这样的(不保证说的对):

请求锁:

成功 –>干活 –> 干完 –> 发送信号给要加锁的线程

失败 –> 睡眠–> 收到信号–>继续请求锁

futex类似这样:

 

 

 Posted by at 下午 2:37

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据