新闻资讯

<主页 > 新闻资讯 >

真人平台C 某一时刻如何让一个方法只被一个线程

发布日期:2019-09-09 08:14

  有好几个线程都要调用一个方法,怎么保证某一时间方法只被一个线程调用,其他线程等待,或者排队。比如thread1在调用方法A,thread2、thread3等待,等thread1结束,线再有一个去...

  有好几个线程都要调用一个方法,怎么保证某一时间方法只被一个线程调用,其他线程等待,或者排队。

  比如thread1在调用方法A,thread2、thread3等待,等thread1结束,线再有一个去调用方法A。

  我来答可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  但是你说需要排队的话那是另外一个问题,因为线程竞争锁是没有序的,极端情况是,永远有一个线程争不到锁。

  另一线程就不断从这个队列内读取请求然后执行,这样必须执行方和使用方一起改动。真人平台

  展开全部类似如下方式,假设函数名为a,真人平台,应该能满足大部分的使用情景,并且只要不在到处使用lock(this), 这个方式也是安全的。void a(){lock (this){// 原来的函数内容放在这里}

  查一下Monitor.Enter的用法,如果涉及到顺序可以用AutoResetEvent