当多线程是一个坏主意?

时间:2016-02-08 04:45:58

标签: multithreading

根据我理解线程的方式,编程多线程程序既可以加速程序,也可以只匹配程序的单线程版本的执行时间。

所以,我的两个问题是:

1-我所说的是真还是假?

2-举例说明多线程代码会对性能产生负面影响?

2 个答案:

答案 0 :(得分:0)

多线程程序的行为可能比单线程程序更差。这主要是由于:

  • 最初创建额外线程的成本
  • 上下文切换的成本
  • false sharing的潜力。

创建许多执行少量工作的线程可能会改变所有这些问题。

多线程程序通常会带来额外的复杂性,并为错误提供大量机会。在决定是否使用多个线程时也应考虑到这一点。

答案 1 :(得分:0)

1-True一般来说,在极少数情况下是假的。 2-例子:

你只有一个CPU核心而没有阻塞/等待任何线程。协调多线程必然浪费CPU时间。由于只有一个线程可以运行,但它们都可以运行(因此非阻塞/非等待条件),总时间更长。