0

所以我有4个对象。它们中的每一个必须同时执行多达 5 个操作,并且所有 4 个对象必须同时操作。我为每个对象创建了一个线程并在 5 个新线程中创建了?我看到一段时间后线程不再执行。问题是:线程中有线程可以吗?或者最好创建一个线程池并并发运行它们?

4

2 回答 2

1

没关系。有时您实际上需要这样做,例如在使用服务器时,您可以从正在侦听客户端的线程为每个连接的客户端创建线程。

于 2013-04-14T19:38:52.023 回答
1

没有“线程中的线程”之类的东西。线程是整个过程中全局的实体。它是否在其他线程之一中创建并不重要。创建它的那一刻,它就成为全局的并且与它创建它的线程无关。

关于创建线程的更多信息,您应该担心对共享资源的访问和可能的竞争条件,当线程在不同的地方创建时,这些条件可能更难跟踪。

根据您的描述,我建议您查看 Task Parallel Library,它使问题变得轻而易举。

于 2013-04-14T19:37:48.427 回答