gpt4 book ai didi

c++ - 允许连接给定服务器中的线程数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:47 24 4
gpt4 key购买 nike

每个连接都需要一个线程,目前,我们每个周期只允许一定数量的连接。因此,每次用户连接时,如果我们在上次设置检查时间后的特定时间段内,我们就会增加计数器。

1.get current_time = time(0)
2.if current_time is OUTSIDE certain period from check_time,
set counter = 0, and check_time = current_time.
3.(otherwise, just leave it the way it is)
4.if counter < LIMIT, counter++ and return TRUE
5.Otherwise return FALSE

但这与我们在服务器中实际运行的线程数无关,因此我正在考虑一种方法来允许根据此数量进行连接。

问题是我们实际上为此使用了第三方 api,并且我们不知道连接将持续多长时间。首先我想创建一个子线程并在其上运行 ps 以将结果传递给父线程,但似乎需要更多时间,因为我必须解析输出结果以获得线程总数,等。我实际上不确定我是否有任何意义。顺便说一句,我正在使用 c++。你们对我如何实现新的检查方法有什么建议吗?我们将不胜感激。

最佳答案

属于进程 [pid] 的每个线程都会有一个 /proc/[pid]/task(自 Linux 2.6.0-test6 起)目录。看man proc用于文档。假设您知道线程池的 pid,您可以计算这些目录。

您可以使用 boost::filesystem 从 C++ 执行此操作,如下所述:

How do I count the number of files in a directory using boost::filesystem?

我假设您使用的是 Linux。

关于c++ - 允许连接给定服务器中的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10620246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com