【发布时间】:2021-12-25 11:51:02
【问题描述】:
我是 Azure 的新手。我想创建一个返回序列号的函数。我创建了一个使用线程互斥锁来锁定序列号的函数。我用大约 10k 个并行请求测试了下面的代码。问题是我在进行测试时得到重复的序列号,互斥锁不起作用。我不确定如何避免重复,而是为每个请求生成运行编号
Public class MySharedMutexCounter {
public static long count = 0;
public static Mutex ObjMutex = new Mutex(false,"SeqGenerator");
}
public long GetSequnceNo(){
long seqId = -1;
try{
MySharedMutexCounter.ObjMutex.waitOne();
seqId = ++MySharedMutexCounter.count;
if(seqId > 100){
MySharedMutexCounter.count = 0;
seqId = ++MySharedMutexCounter.count;
}
return seqId;
}finally{
MySharedMutexCounter.ObjMutex.RelaseMutex();
}
return -1;
}
【问题讨论】:
标签: multithreading azure azure-functions mutex azure-durable-functions