多线程并发服务器设计

YanDong_8212 YanDong_8212 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
目前准备做一个很大的服务器,希望是能支持万人级同时下载。但是,之前没有做过这么多的并发数。我在google和CSDN查了很多以往的资料,但是都解决不了问题。
为了测试单个进程能支持多少个线程,我写了个测试程序:
#include <stdio.h>
#include <pthread.h>
#include <errno.h>

#define PTHREAD_THREADS_MAX 20000
void thread(void)
{
char ch[128];
}

int main()
{
pthread_t id;
int i=0, ret;
while(1)
{
ret = pthread_create(&id, NULL, (void * (*)(void *))thread, NULL);
i++;
if (ret != 0)
printf("Max = %d errno=%d\n", i-1, errno),perror("create thread"), exit(0);
printf("i=%d pthread_id=%d\n", i, id);
}
return 0;
}
当生成了1021个线程过后,程序退出了,错误信息是:
Interrupted system call
我尝试修改/usr/include/loacal_lim.h中的
#define PTHREAD_THREAD_MAX 2048 //原来为1024
#define PTHREAD_KEY_MAX 2048 //原来为1024
同时利用ulimit对一系列限制做了修改,但运行结果都一样,errno=4。
现在请问下高手,
1。interrupted system call是什么错误?
2。怎么在单进程提高并发上限?
3。那些万人级的并发服务器的原理是什么呢?
...全文

相关推荐

基于Java的多线程并发服务器的设计与应用

### 基于Java的多线程并发服务器的设计与应用#### 1. 引言随着网络技术的发展,服务器端的设计变得越来越复杂且高效。其中,多线程并发服务器因其能够同时处理多个用户请求而受到广泛的关注。

basten0926

大并发服务器的多线程与并发服务器设计: 常见并发服务器方案

本文深入解析了多种并发服务器模型,包括循环式、并发式、预创建、反应式、多线程反应式、工作线程、工作线程池、多反应器及专业者模式。对比分析了各模型的优缺点,特别强调了反应式服务器与专业者服务器在处理大量并发请求时的性能优势。

想飞的IT猪

初识Socket编程——基于流式套接字的多线程并发服务器回射程序设计

本文介绍了如何将基于流式套接字的服务器改造成并发服务器,通过创建线程为每个客户端提供服务。实验内容涉及在服务器端利用pthread库进行线程管理,客户端则保持不变。在特定场景下,使用select可以优化并发处理,避免线程过多导致的问题。

姑苏流白

多线程并发服务器(毕业设计)

这个毕业设计的主题是“多线程并发服务器”,采用C++语言实现,这表明我们将在讨论中涵盖C++编程、多线程技术和网络编程基础。1.

duanfei007

基于Linux的多线程池并发Web服务器设计

"基于Linux的多线程池并发Web服务器设计"在现代互联网环境中,Web服务扮演着至关重要的角色。传统的Linux平台Web服务器通常基于进程或单一线程模型,但这种方式在处理大规模并发请求时,可

weixin_38661466
评论 41
收藏 已收藏
分享
返回顶部
YanDong_8212
Linux/Unix社区 23,224 成员 74,535 内容