gpt4 book ai didi

java - 为什么线程是顺序执行的?

转载 作者:行者123 更新时间:2023-11-29 04:22:28 25 4
gpt4 key购买 nike

Q.1 我试图同时运行两个线程,但这里是顺序打印值。例如,它正在打印 0 然后 1 再打印 0 然后 1。如果线程正在并发运行,那么它不应该像 0 0 然后 1 1 一样打印。

Q.2 它输出 10、11,然后是 0、1、0、1。当它首先打印 10 和 11 时。这是否意味着线程 t1 和 t2 尚未启动,即使程序控制首先转到 t1.start()t2.start()

public class Main implements Runnable
{
int x;

public void run()
{
for(int i = 0; i < 2; i++)
{
System.out.println(x++);
}
}

public static void main(String[] args)
{
Thread t1 = new Thread(new Main());

Thread t2 = new Thread(new Main());

t1.start();
t2.start();

int y = 10;
for(int i = 0; i < 2; i++)
{
System.out.println(y++);
}
}
}

最佳答案

Threads 使用的 x 变量与 main 方法中打印的 x 变量不同。

由于线程中执行的代码非常短,第一个线程将在第二个线程启动时完成

对于这个简单的示例,您的代码也会受到输出缓冲区的影响。

关于java - 为什么线程是顺序执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48258633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com