- 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 参数为基本类型时,按指针传
您可能关注的文档
最近下载
- 机场油库安全管理制度体系优化研究.docx VIP
- 医学课件-《甲状腺讲》教学课件.pptx VIP
- 专题05透镜及其应用-2007-2016十年初中物理竞赛分类解析(学生版).pdf VIP
- 2007-2016十年初中物理竞赛分类解析专题10 浮力.pdf VIP
- 2026年版-FOCUSPDCA降低骨科I类切口手术部位感染率CQI-新版课件.pptx
- 如何获得免费的网络来注册一个免费的电子邮箱账户.pdf VIP
- 西方艺术史PPT课件.pptx VIP
- 《喀斯特地貌》课件.ppt VIP
- 2025年课件-FOCUSPDCA提高青少年近视防控知识普及率CQI(眼科)-新版.pptx
- 2025上海辅警面试题目及答案.doc VIP
原创力文档

文档评论(0)