【问题标题】:Java Multithreading basic questionsJava多线程基本问题
【发布时间】:2016-12-12 20:44:01
【问题描述】:

我在java多线程中有以下问题

在 Java 多线程中,所有线程共享同一段 java 代码并并行执行它们?

还是每个线程共享的Java代码段不同?

【问题讨论】:

  • Re “我也读过……” 你在哪里读到的?您能否逐字发布您阅读的内容以及来源,因为它没有意义。
  • "Also I read that at a time only one thread can run.. So if this statement is true then where are achieving multithreading?" -- 再次,请告诉我们你在哪里读到这篇文章。
  • 是的。请点击此链接javatpoint.com/sleep()-method 如您所知,一次只执行一个线程。如果你让一个线程休眠了指定的时间,这个线程shedular会拾取另一个线程,以此类推。
  • "As you know well that at a time only one thread is executed." -- 这个我不太清楚,其实我一直认为这就是线程的全部意义 -- 让程序流的多个线程同时执行 。此外,您的链接不支持您关于“只能运行一个线程”的说法。我坚信你的陈述是错误的。
  • 更正,它确实说明了这一点,但它大错特错。不要相信作者写的任何东西。

标签: java multithreading concurrency


【解决方案1】:

线程只能在多处理器上并行执行(每个 CPU 一个线程)。 在单处理器机器上,执行线程以使用 CPU 的空闲时间。

【讨论】:

    【解决方案2】:

    是的,线程将执行同一段代码,但如果您的代码包含共享类级别的变量,则需要正确同步,以便每个线程读取一致的变量状态。

    线程是为了确保通过多个线程同时访问一段代码。

    有不同的方法可以实现线程安全。可以参考 java concurrency is practice 了解更多详情。

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多