C#控制台程序,做接口压力测试。启动100个线程,需要100个线程先全部启起来,然后再同时调用,怎么控制?
发布网友
发布时间:2022-04-29 21:16
我来回答
共1个回答
热心网友
时间:2023-10-09 06:44
可以设置一个信号量,初始是0,每个线程开始执行时+1,然后轮询等待该信号量变为100,再继续执行。
多线程访问同步数据要记得加互斥锁。追问我现在是设置了个时间点来控制的,但是这样不确定线程一定就能在给的时间内启动完,你这个比我的要好。我现在疑问的是,按你说的,信号量到100后,怎么让这个100个线程都执行我的线程函数
追答
死循环就可以了呀。
关键逻辑的伪代码:
int signal = 0; // 信号量
Thread thread1 = new Thread(() =>
{
signal ++; // 应该加锁访问,此处省略
while(true){
if (signal >= 100) break; // 同样应加锁访问
}
// 之后要继续执行的
DoSomething();
});