高并发
文章平均质量分 94
haoxongdi
这个作者很懒,什么都没留下…
展开
-
c++ 多线程 “锁”
线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能与性能成反比。不过我们一般不使用递归锁(C++标准库提供了std::recursive_mutex),所以这里就不推荐了。原创 2022-06-25 11:06:56 · 8402 阅读 · 0 评论 -
项目高并发 select、poll、epoll之间的区别(一)
(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, 但是它没有最大连接数的限制,原因是它是基于链表来存储的.(3)epoll=原创 2022-06-20 10:42:08 · 169 阅读 · 0 评论