semaphore信号量

来源:互联网 发布:淘宝美工主图 编辑:程序博客网 时间:2024/05/23 19:15

semaphore是多线程的一种方式:

定义一个信号量Semaphore sp = new Semaphore(0, 1, "Begin");0代表当前初始的个数,1为最大的数量,Begin是信号量的名称

定义线程

  for (int i = 1; i <= 5; i++)
            {
                Thread t = new Thread(new ParameterizedThreadStart(Worker));

                 t.Start(i);
            }

定义五个线程,将现在的信号量进行释放,并且每个线程都开始,进入worker()中,

在worker()中让线程WaitOne()一个信号量,得到信号量后,线程开始执行,线程执行完毕后,需要释放信号量Release()