ProxyServerTcp / src /utils.cpp
xukc
[opt]udp
bb16f10
#include "utils.h"
#include <sys/time.h>
int thread_num = 4;
hloop_t** worker_loops = NULL;
void init_loop(int _thread_num, hthread_routine worker_thread) {
thread_num = _thread_num;
worker_loops = (hloop_t**)malloc(sizeof(hloop_t*) * thread_num);
for (int i = 0; i < thread_num; ++i) {
worker_loops[i] = hloop_new(HLOOP_FLAG_AUTO_FREE);
hthread_create(worker_thread, worker_loops[i]);
}
}
hloop_t* get_next_loop() {
static int s_cur_index = 0;
if (s_cur_index == thread_num) {
s_cur_index = 0;
}
return worker_loops[s_cur_index++];
}
char generateRandomKey()
{
// 使用时间作为随机数种子,确保每次运行生成的随机数都不同
srand((unsigned int)time(NULL));
// 生成 'A' 到 'Z' 之间的随机字符
return (char)('A' + rand() % 26);
}
long long currentTimeMillis() {
struct timeval now;
gettimeofday(&now, NULL);
// return time(NULL);
// struct timespec now;
// clock_gettime(CLOCK_MONOTONIC, &now);
return now.tv_sec * 1000 + now.tv_usec / 1000;
}