线程的优点
发挥多处理器的强大能力
建模的简单性
只包含一种类型任务时,程序更易于编写,错误更好,更容易测试
异步事件的简化处理
响应更灵敏的用户界面
线程的风险
安全性问题
安全性指永远不发生糟糕的事情。在没有充足同步的情况下,多个线程中的操作执行顺序是不可预测的,甚至会产生奇怪的结果。而且由于指令重排的原因,实际情况会更加糟糕。
活跃性问题
活跃性意味着某件正确的事情终将会发生。当某个操作无法继续执行下去时,就会发生活跃性问题。活跃性问题的形式之一就是无限循环,从而使得循环后的代码无法得到执行。还包括死锁,饥饿,活锁等问题。
性能问题
性能问题包括很多方面。例如服务时间过长,响应不灵敏,吞吐率过低,资源消耗多高,可伸缩性较低等等。