多任务注意事项

建议的准则是使用尽可能少的线程,从而最大程度地减少系统资源的使用。 从而可以提高性能。 设计应用程序时,多任务具有资源要求和潜在的冲突。 资源要求如下:

  • 系统将内存用于进程和线程所需的上下文信息。 因此,可以创建的进程和线程数受可用内存的限制。
  • 跟踪大量线程会消耗非常多的处理器时间。 如果线程过多,大多数线程将无法取得重大进展。 如果当前大多数线程都位于同一个进程中,那么其他进程中的线程被排入计划的频率会变低。

提供对资源的共享访问权限可能会产生冲突。 若要避免出现这种情况,必须同步对共享资源的访问。 这适用于 (系统资源,例如通信端口) 、由多个进程共享的资源 ((如文件句柄) )或单个进程 (的资源(如多个线程) 访问的全局变量)。 在相同或不同进程中 (正确同步访问) 可能会导致死锁和争用等问题。 可用于协调多个线程之间的资源共享的同步对象和函数。 有关同步的详细信息,请参阅 同步多线程的执行。 减少线程数可以更轻松、更有效地同步资源。

多线程应用程序的一个好设计是管道服务器。 在此设计中,为每个处理器创建一个线程,并生成应用程序维护上下文信息的请求队列。 线程会在处理下一个队列中的请求之前处理队列中的所有请求。