多线程编程中应该注意的问题.docVIP

  • 5
  • 0
  • 约1.86千字
  • 约 8页
  • 2017-02-28 发布于湖北
  • 举报
多线程编程中应该注意的问题 线程的优先级 多线程编程中要注意协调好各个线程的优先级。一般来说,控制线程的优先级要高于Worker线程。这样做,可以保证Client(最终用户或者其他模块)尽快得到响应。当控制线程是与最终用户交互的界面线程时更应如此,如果界面线程优先级较低,界面可能较长时间没有反应,用户很可能会怀疑命令是不是还没有开始执行。下面两张图给出了控制线程优先级不同对Client造成不同响应时间的对比。 Fig 1.1 控制线程优先级低,对用户响应时间较长 Fig 1.2 控制线程优先级高,对用户响应时间较短 防止栈溢出 这个问题不只存在在多线程编程中。防止栈溢出可以参考下面几条建议: 不在函数体内定义特别大的栈变量,必须要定义的时候,可以使用new在堆上分配。 传递参数时,大的参数(如结构体,类)使用按指针传递,小的参数(如基本数据类型)使用按值传递。 Fig 2.1 大对象作为参数时,按值传递的过程 Fig 2.2 大对象作为参数时,按指针传递的过程。 由Fig 2.1和Fig 2.2可以看出,对于较大的对象,按指针的传递的资源消耗较小,空间上,仅需把一个指针压栈;时间上,省去了拷贝构造函数的调用。所以在传递大的对象时,应该使用按指针传递。 Fig 2.3 参数为基本类型时,按值传递的过程 Fig 2.4 参数为基本类型时,按指针传

文档评论(0)

1亿VIP精品文档

相关文档