何时使用多线程技术,何时避免用它,是我们需要掌握的重要课题。多线程技术是一把双刃剑,在使用时需要充分考虑它的优缺点。 (2)当前没有进行处理的任务时可以将处理器时间让给其它任务; (3)占用大量处理时间的任务可以定期将处理器时间让给其它任务; (4)可以随时停止任务; (5)可以分别设置各个任务的优先级以优化性能。 是否需要创建多个线程取决于各种因素。在以下情况下,最适合采用多线程处理: (2)各个任务必须等待外部资源 (如远程文件或 Internet连接)。
(2)对线程进行管理要求额外的 CPU开销。线程的使用会给系统带来上下文切换的额外负担。当这种负担超过一定程度时,多线程的特点主要表现在其缺点上,比如用独立的线程来更新数组内每个元素。 (3)线程的死锁。即较长时间的等待或资源竞争以及死锁等多线程症状。 (4)对公有变量的同时读或写。当多个线程需要对公有变量进行写操作时,后一个线程往往会修改掉前一个线程存放的数据,从而使前一个线程的参数被修改;另外 ,当公用变量的读写操作是非原子性时,在不同的机器上,中断时间的不确定性,会导致数据在一个线程内的操作产生错误,从而产生莫名其妙的错误,而这种错误是程序员无法预知的。 |
|
来自: 昵称22369024 > 《IT技术》