不用线程池,使用Semaphore信号量同样也可以控制Thread多线程的并行数量。

Posted LarvaAndQing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不用线程池,使用Semaphore信号量同样也可以控制Thread多线程的并行数量。相关的知识,希望对你有一定的参考价值。

static Semaphore sem = new Semaphore(100, 100); 


for (int i = 0; i <1000; i++)

            {

                Thread td = new Thread(new ParameterizedThreadStart(方法));

                td.Start(i);

            }

static void 方法(object i)

{

       sem.WaitOne();//自减信号量

       方法体...

       执行完成。。。。

       sem.Release();//信号量自增
} 

 

以上是关于不用线程池,使用Semaphore信号量同样也可以控制Thread多线程的并行数量。的主要内容,如果未能解决你的问题,请参考以下文章

信号量Semaphore的使用

并发编程中:Semaphore信号量与lock的区别

JUC并发编程 共享模式之工具 JUC Semaphore(信号量)-- 限制对共享资源的使用 改进数据库连接池

Semaphore源码分析

Semaphore源码分析

Semaphore-信号灯机制