Java多线程基本问题

Posted

技术标签:

【中文标题】Java多线程基本问题【英文标题】:Java Multithreading basic questions 【发布时间】: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." -- 这个我不太清楚,其实我一直认为这就是线程的全部意义 -- 让程序流的多个线程同时执行 。此外,您的链接不支持您关于“只能运行一个线程”的说法。我坚信你的陈述是错误的。 更正,它确实说明了这一点,但它大错特错。不要相信作者写的任何东西。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于Java多线程基本问题的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程——多线程的基本概念和使用

Java 多线程的基本使用

Java 多线程

Java多线程

Java 多线程

Java多线程系列--“基础篇”01之 基本概念