1
8
.NET 4.0将包括
Similar functionality can be achieved 在.NET 3.0+中使用多个waithandles,如中所示 this example 在MSDN上。 MSDN示例的简要摘要:
|
2
2
做一些类似垃圾收集的事情。您将编写一个threadmanager,它计算正在运行的线程数。当主线程启动新的工作线程时,threadmanager将增加其工作线程数。当一个工作进程结束时,它将通知threadmanager,后者将减少线程数。当它没有工作线程时,threadmanager将唤醒主线程。 |
3
2
看起来像
您的主线程将需要保留对工作线程等待句柄的引用。当需要同步时,将这些句柄传递到上面的方法中。工作线程在其代码中的适当点发出信号。
如果工作线程循环或需要多次“脉冲”,则可以使用
如果没有(如果主线程只是需要知道工作线程已超过某个阈值),
在使用waitall(来自msdn)时需要注意一些事情
但是,很少有进程能够真正利用64个以上的线程,因此这种限制通常并不重要。 |
4
1
这叫做屏障: http://programmingexamples.wikidot.com/java-barrier 噢,但是如果您只需要第一个线程等待其余线程通过某个点,而您希望另一个线程仍继续工作,那么使用一个大小为n的信号量,让所有其他线程都接受它,而第一个线程则等待在它们之后获取它。 Semaphore: http://programmingexamples.wikidot.com/java-semaphore |
5
1
因为在某些实现中,句柄的数量是有限制的
用法是将每个线程的等待句柄添加到数组中,然后在所有线程启动之后调用上面的实用方法(传递数组)。
|
6
1
如果您只需要等待线程终止,那么
|
7
1
好吧,我现在正在做的(利用你的想法),似乎有效的是: 我宣布了一份ManualResetEvent清单:
进程接受传入的TCP连接,并在每个连接上启动一个线程。所以在新的客户机处理程序中,我添加了以下代码:
最后一件事是修改stop方法,以确保stop操作不会对不可停止方法内的任何线程执行:
我不确定这样做是否正确,因为这是我第一次处理这样的事情。你觉得这样可以吗?这是一个很好的方法? 谢谢大家,伙计们! |
8
1
尝试使用这个:
在每个线程中:
主线:
|
9
1
在互联网上,人们尝试使用一系列
要使用这个类,所有需要同步的线程都必须调用
|
10
0
使用 Thread.Join (在线程终止前阻塞调用线程,同时继续执行标准COM和发送消息泵送)方法,如示例中所示:
|
a a · 为什么在这个可重入锁示例中需要引用计数? 2 年前 |
JohnLBevan · 为什么原子语句上需要锁提示? 6 年前 |
Jay Wang · 生产者/消费者实施:陷入消费者循环 6 年前 |
Andremoniy · 悲观写入是否锁定整个表? 6 年前 |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 6 年前 |
Ins0maniac · Rails,锁定数据库中的记录 6 年前 |