Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java显示同时工作的线程_Java_Multithreading - Fatal编程技术网

Java显示同时工作的线程

Java显示同时工作的线程,java,multithreading,Java,Multithreading,我第一次在Java中玩线程,我只是想让自己相信他们在做我认为他们在做的事情 我希望下面的代码同时运行两个循环,因此我希望输出是计数器的混合。然而,每次运行代码时,我都会得到一个从1到3000的直接计数,所有数字都是按顺序排列的 我错过什么了吗?有没有更好的方法来演示两个线程实际上同时工作 public class ThreadDemo { public static void main(String[] args) { Loop1 loop1 = new Loop1(); Lo

我第一次在Java中玩线程,我只是想让自己相信他们在做我认为他们在做的事情

我希望下面的代码同时运行两个循环,因此我希望输出是计数器的混合。然而,每次运行代码时,我都会得到一个从1到3000的直接计数,所有数字都是按顺序排列的

我错过什么了吗?有没有更好的方法来演示两个线程实际上同时工作

public class ThreadDemo {

public static void main(String[] args) {
    Loop1 loop1 = new Loop1();
    Loop2 loop2 = new Loop2();

    loop1.run();
    loop2.run();
}


public static class Loop1 implements Runnable {
@Override
public void run() {
    for(int i= 1; i <= 1000; i++){
        System.out.println(i);
    }
}


public static class Loop2 implements Runnable {
@Override
public void run() {
    for(int i= 2000; i <= 3000; i++){
        System.out.println(i);
    }
}
}

要执行线程,需要使用start方法。当您调用run时,它只是对调用它的同一线程的标准方法调用


您还应该尝试在结束时对线程调用join。

可运行线程不是线程。你需要

Thread t = new Thread(loop1);
t.start();

您的问题是关于最基本的线程,在来到这里之前,最好先搜索并阅读关于这方面的教程。您可以在此处找到主要的Java教程:。请保存此链接并经常查阅。我知道我知道。