线程占用栈内存,什么时候消耗完进程空间?

shouso888 2013-10-17 10:09:31

我们知道单一进程地址空间限制在4GB,那作为服务器,如果接受连接就创建一个线程,每个线程
有 8M 的线程独立栈,那可以接受的链接不是很有限?? 连一千个链接都不到?? 待高人指点
...全文
322 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shouso888 2013-10-17
  • 打赏
  • 举报
回复
引用 7 楼 qq120848369 的回复:
了解一下异步网络通讯: http://bbs.csdn.net/topics/390616819
版主威猛!!! 待我细细研究。 不懂再找你,另外 ez_poll 中的ez 是啥意思呢
mujiok2003 2013-10-17
  • 打赏
  • 举报
回复
引用 8 楼 shouso888 的回复:
[quote=引用 6 楼 mujiok2003 的回复:] 如果需要同时需要1K个线程, 确实栈占用了太多空间了,另外线切换的开销也不容忽视。 如果是n核心CPU, 可能并发2n个线程,活动线程数超过2n的意义不大。
那研究线程池就是没用的咯?! 现在的n一般也就4吧。 另外我想知道 “多进程+epoll+线程池+异步” linux 源码 [/quote] 线程池中的线程一般都不是活动线程。 线程池是有用的,但是不万能的。 linux的源码很容易取得。
shouso888 2013-10-17
  • 打赏
  • 举报
回复
引用 6 楼 mujiok2003 的回复:
如果需要同时需要1K个线程, 确实栈占用了太多空间了,另外线切换的开销也不容忽视。 如果是n核心CPU, 可能并发2n个线程,活动线程数超过2n的意义不大。
那研究线程池就是没用的咯?! 现在的n一般也就4吧。 另外我想知道 “多进程+epoll+线程池+异步” linux 源码
qq120848369 2013-10-17
  • 打赏
  • 举报
回复
了解一下异步网络通讯: http://bbs.csdn.net/topics/390616819
mujiok2003 2013-10-17
  • 打赏
  • 举报
回复
如果需要同时需要1K个线程, 确实栈占用了太多空间了,另外线切换的开销也不容忽视。 如果是n核心CPU, 可能并发2n个线程,活动线程数超过2n的意义不大。
大尾巴猫 2013-10-17
  • 打赏
  • 举报
回复
引用 4 楼 shouso888 的回复:
[quote=引用 2 楼 ananluowei 的回复:] 有大量连接的服务器怎么可能用1个连接1个线程的同步模式 有很多异步连接的模式,只要开几个线程,就能处理几千甚至几万个连接。
之前见过以下这样的回答: “一个线程epoll一个TCP连接?那你的服务器会叫苦的, 一般的模型是多进程+epoll+线程池+异步。” 看的似懂非懂,很希望有个说的明细点的资料,怎么 架构这个模型。。最好有源码 [/quote] 简单一点的是select模型 效率更高的是iocp模型(windows)和epoll模型(Linux) 至于源码,网上去找找吧。 windows下的网络服务器模型的源码:《windows网络编程第2版》附带的源码
shouso888 2013-10-17
  • 打赏
  • 举报
回复
引用 2 楼 ananluowei 的回复:
有大量连接的服务器怎么可能用1个连接1个线程的同步模式 有很多异步连接的模式,只要开几个线程,就能处理几千甚至几万个连接。
之前见过以下这样的回答: “一个线程epoll一个TCP连接?那你的服务器会叫苦的, 一般的模型是多进程+epoll+线程池+异步。” 看的似懂非懂,很希望有个说的明细点的资料,怎么 架构这个模型。。最好有源码
shouso888 2013-10-17
  • 打赏
  • 举报
回复
引用 2 楼 ananluowei 的回复:
有大量连接的服务器怎么可能用1个连接1个线程的同步模式 有很多异步连接的模式,只要开几个线程,就能处理几千甚至几万个连接。
大神,请说详细点,或指条明路上哪去看什么相关内容! 先感谢
大尾巴猫 2013-10-17
  • 打赏
  • 举报
回复
有大量连接的服务器怎么可能用1个连接1个线程的同步模式 有很多异步连接的模式,只要开几个线程,就能处理几千甚至几万个连接。
pathletboy 2013-10-17
  • 打赏
  • 举报
回复
全局变量不是在栈上的,莫非你全用的局部变量?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧