【问题标题】:Doesn't on synchronization, multithreaading become non - multithreading? Then why do multithreading in the first place?不同步,多线程变成非多线程?那么为什么首先要做多线程呢?
【发布时间】:2016-07-29 16:19:51
【问题描述】:

多线程是指多个线程同时执行。但是,当线程同步时,不会发生多线程。它们作为普通线程工作。那么,如果我们无论如何都必须同步它,为什么还要首先使用多线程呢?

【问题讨论】:

  • 您只同步必须相互独占执行的关键部分。
  • 如果你用一把锁同步所有的东西,那将毫无意义,这就是你不这样做的原因。

标签: java multithreading synchronization


【解决方案1】:

如果您按照您描述的方式同步线程,那么多线程就没有意义了。您将使用多线程的一个地方是并行数据处理。收集所有必要的输入后,您可以独立运行线程,而无需同步。

【讨论】:

    【解决方案2】:

    您不会同步以使线程永远不会并行执行,而是同步以使代码的某些部分不并行执行。

    想象一下,两个线程从一个共享数组中逐步读取值,对它们运行一些计算,然后将结果添加到一个共享内存位置。

    读取值的部分需要同步以确保没有两个线程读取相同的值。

    将数据添加到内存位置的部分应同步,以免两个线程同时写入数据。

    计算部分可以并行完成,通常这部分是最耗时的。因此,这就是您从多线程中受益的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2021-10-25
      相关资源
      最近更新 更多