日期:2014-05-18  浏览次数:20479 次

请教一下各位大侠,多线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现


在某一时间内,只有N个线程在并发执行,其余都在队列中的实现

我要实现的功能就是比方说我有1500条要操作的数据,
而现在我需要20个线程同时去执行(一条线程操作一条数据),
而剩下要操作的数据,等20线程里有完成的线程的时候,再补充进去。
直到1500条数据全部操作完成。
这样的程序怎么写呢?

另外问问,线程休眠还占用线程并发吗?

------解决方案--------------------
可以用Semaphore类http://msdn.microsoft.com/zh-cn/library/system.threading.semaphore.aspx,也可以用ThreadPoolhttp://msdn.microsoft.com/zh-cn/library/system.threading.threadpool.aspxMSDN上有示例。