当我们使用线程时,它是否可以作为C#中的并行进程或串行进程使用?
答案 0 :(得分:5)
如果您有多个处理器或核心,很可能它们将并行运行。否则,它们在pseudo-parallel
中运行,这意味着它们将按顺序运行但不确定。
答案 1 :(得分:1)
当您需要从ASP.NET页面请求调用2个或更多WebServices或Queries时,您可以(应该)使用Threads并行执行它们。所花费的总时间将是最长动作的时间,而不是所有任务的总和。
答案 2 :(得分:0)
您已将此标记为asp.net问题,因此我认为您需要提供有关您尝试执行的操作的更多信息。在ASP.NET中,每个请求都在一个单独的线程上处理,因此它已经是多线程的。如果真正需要并行执行长时间运行的任务,则应该只创建自己的线程。多线程在winforms应用程序中更常用,以确保在运行计算或检索/发送数据等时GUI仍然对用户作出响应。
也就是说,有些时候你可能会在ASP.NET中使用新线程,所以请提供更多详细信息。
答案 3 :(得分:0)
如果您在代码中使用线程,那么操作系统将为这些线程分配处理时间。
如果你的系统只有一个处理器,那么每个线程将被分配少量的处理时间(这是“关键部分”的来源,因为它将阻止操作系统在该部分内暂停一个线程)。 p>
如果您的系统有多个处理器,则每个线程可以在单独的处理器上运行。理论上,如果系统每个线程有一个处理器,那么它们将在等于最长线程的时间帧中执行。实际情况并非如此,因为通常在给定系统上运行许多线程。