多线程调用epoll_wait()的线程安全问题分析 http://blog.csdn.net/lmh12506/article/details/7836827

news/2024/11/30 15:33:48/
http://blog.csdn.net/lmh12506/article/details/7836827 


多线程调用epoll_wait()的线程安全问题分析

  3041人阅读  评论(1)  收藏  举报
多线程 socket thread 工作

目录(?)[+]

多线程epoll_wait后得到的活跃fd是线程安全的吗?

或者说多个线程在epoll_wait后,各个线程得到的epoll_event[]里的socket有相同的吗?



有可能各个线程得到的epoll_event[]里的socket有相同的。特别在LT模式下。虽然内核使用了排他锁每次只唤醒一个epoll_wait()进程,但如果在LT模式下,而且唤醒的进程没有处理完该fd的全部数据,那么下一个epoll_wait()进程醒来的时候,就有可能得到该fd还是可读的,这样各个线程得到的epoll_event[]里的socket就有可能是相同的。注意是:可能!!!


加上EPOLLONESHOT ,一个socket就只有一个thread处理,然后再epoll_ctl EPOLL_CTL_MOD修改该fd。


正解,EPOLLONESHOT,
至于ET和LT我还没有进行过对比,但是在大量实践中,LT+EPOLLONESHOT的工作是可靠的。

版权声明:本文为博主原创文章,未经博主允许不得转载。



http://www.ppmy.cn/news/534227.html

相关文章

海量数据处理常用思路和方法 http://blog.csdn.net/lmh12506/article/details/7563266

海量数据处理常用思路和方法 分类: 数据结构与算法 2012-05-13 23:07 655人阅读 评论(0) 收藏 举报 filter 扩展 文档 mapreduce 存储 分布式计算 大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公…

poll函数源码详细分析 http://blog.csdn.net/lmh12506/article/details/7556297

废话不多说,相信看这篇文章的都用过poll和epoll,先来看poll系统调用的源码。 [cpp] view plain copy print ? asmlinkage long sys_poll(struct pollfd __user * ufds, unsigned int nfds, long timeout) { struct poll_wqueues table; int fdco…

epoll_create函数实现源码分析 http://blog.csdn.net/lmh12506/article/details/7556188

http://blog.csdn.net/lmh12506/article/details/7556188 2012-05-11 10:03 2370人阅读 评论(0) 收藏 举报 file descriptor structure struct semaphore list 昨晚分析了poll,通过代码的阅读可以发现,poll操作有很多可以优化的地方。epoll是eventpo…

[FAQ12506]如何实现壁纸不随着workspace的滑动而滑动

[DESCRIPTION] 如何实现壁纸不随着workspace的滑动而滑动 [SOLUTION] 在Workspace.java中把调用updateOffset的地方全部注释掉。

[FAQ12506] 如何实现壁纸不随着workspace的滑动而滑动

[DESCRIPTION] 如何实现壁纸不随着workspace的滑动而滑动 [SOLUTION] 在Workspace.java中把调用updateOffset的地方全部注释掉。

Uva - 12506 - Shortest Names(Trip)

题意&#xff1a;有n个由小写字母组成的名字&#xff0c;任何一个名字都不是另一个名字的前缀&#xff0c;对于每个名字&#xff0c;只取它的最短前缀&#xff0c;使得这n个取出来的前缀互不相同&#xff0c;问这些前缀的总字母个数&#xff08;1 < n < 1000, 所有名字的…

Shortest Names UVA - 12506

In a strange village, people have very long names. For example: aaaaa, bbb and abababab. You see, it’s very inconvenient to call a person, so people invented a good way: just call a prefix of the names. For example, if you want to call ‘aaaaa’, you can …

UVa 12506 Shortest Names

题目&#xff1a;uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem3950 Description In a strange village, people have very long names. For example: aaaaa, bbb and abababab. You see, it’s very inconvenient to …