1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhu-hong202257887-DNS-Server

Клонировать/Скачать
RateLimiter.h 631 Байт
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
@zhu-hong202257887 Отправлено 29.06.2022 13:31 0d75f45
#pragma once
#include <mutex>
#define RETRY_IMEDIATELY_TIMES 30
class RateLimiter {
public:
RateLimiter(int qps);
void pass();
private:
//互斥锁
std::mutex mtx;
//获得当前时间, 单位ns
long now();
//更新令牌桶中的令牌
void supplyTokens();
//尝试获得令牌
bool tryGetToken();
//必定成功获得令牌
void mustGetToken();
//令牌桶大小
int bucketSize;
//剩下的令牌数
int tokenLeft;
//补充令牌的单位时间
long supplyUnitTime;
//上次补充令牌的时间
long lastAddTokenTime;
};

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhu-hong202257887-DNS-Server.git
git@api.gitlife.ru:oschina-mirror/zhu-hong202257887-DNS-Server.git
oschina-mirror
zhu-hong202257887-DNS-Server
zhu-hong202257887-DNS-Server
master