美文网首页
程序获取最大并发连接的方法

程序获取最大并发连接的方法

作者: jevian | 来源:发表于2022-02-02 02:29 被阅读0次

在编写高并发程序时,通常需要考虑系统限制的tcp并发连接数。而这个并发连接数,与程序的运行环境有关,因此最好是在运行过程中监听。方法如下:

#include <stdio.h>
#include <unistd.h>

int main () {
printf("max open file is %ld\n", sysconf(_SC_OPEN_MAX));
return 0;
}

核心函数是sysconf(_SC_OPEN_MAX),我们大概介绍下该函数:

需要添加头部unistd.h。大多数这些变量的值在调用进程的生存时间内不变。
如果出错,那么函数返回-1,并适当地设置errno。
当没有错误发生时,-1也是一个合法的返回值。
因此,程序要检查错误,应该在调用sysconf()之前将errno设置为0,然后,如果返回-1,则检验到错误。
参数name指定我们感兴趣的运行时限制的名字,它必须是以下值中之一(除非另有说明,否则返回值都是整数):
_SC_2_C_BIND:一个布尔值,指出是否支持POSIXC语言绑定。返回值是_POSIX2_C_BIND。
_SC_2_C_DEV:一个布尔值,指出是否支持POSIXC语言开发使用工具选项。返回值是_POSIX2_C_DEV。
_SC_2_C_VERSION:它指出支持哪一个ISOPOSIX.2标准(命令)的版本。返回值是_POSIX2_C_VERSION。
_SC_2_CHAR_TERM:一个布尔值,指出是否至少支持一个终端。返回值是_POSIX2_CHAR_TERM。
_SC_2_FORT_DEV:一个布尔值,指出是否支持FORTRAN开发使用工具选项。返回值是POSIX2_FORT_DEV。
注意:1、CLK_TCK的值是可变的,因此,不应该假设它是一个编译时间常量。
2、调用setrlimit会使OPEN_MAX的值发生改变。
3、通过将sysconf(_SC_PHYS_PAGES)和sysconf(_SC_PAGESIZE)相乘,来确定物理内存的总量(以字节为单位)可以返回一个值。

相关文章

  • 程序获取最大并发连接的方法

    在编写高并发程序时,通常需要考虑系统限制的tcp并发连接数。而这个并发连接数,与程序的运行环境有关,因此最好是在运...

  • iOS GCD

    任务和队列的创建方法 / 获取方法 队列的创建方法 / 获取方法 串行队列的创建方法 并发队列的创建方法。并发队列...

  • 数据库连接数爆满解决方案

    高并发下测试时,程序跑一会出现数据库连接数达到最大限制的情况,此时紧急的处理方案是将数据库的连接数最大值设大。但是...

  • 并发编程

    使用应用级并发的应用程序称为并发程序。操作系统提供了三种基本的构造并发程序的方法:进程。用这种方法,每个逻辑控制流...

  • JDBC模拟超过最大链接数

    mysql默认支持的最大并发数是多少不确定 代码模拟超过最大连接数

  • 多线程上下文切换

    1、背景 并发编程的目的是为了让程序运行得更快,但是并不是启动更多的线程就能让程序最大 限度地并发执行。在进行并发...

  • 一 并发编程的挑战

    概述   并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发...

  • Akka 2.5.12 I/O 层设计

    需求 数百万条并发连接的可伸缩性 从输入通道获取数据到目标actor的邮箱,这个过程中的最低延迟 最大的吞吐量 可...

  • 第一章_并发编程面临的挑战

    概述 并发编程的目的是为了让程序运行更快,但是,并不是启动更多的线程就能让程序最大限度的并发执行。在进行并发编程时...

  • 并发 - 并发编程的挑战

    一、概述 并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发...

网友评论

      本文标题:程序获取最大并发连接的方法

      本文链接:https://www.haomeiwen.com/subject/fvilkrtx.html