Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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中的线程概念非常陌生,虽然我尝试了一些代码,它们都能正常工作,但我真的不太明白在后台发生了什么。例如,我编写了以下代码: public class myThreadTest implements Runnable { private static void ping(String text, int count) throws InterruptedException { for (int i = 0; i<count;

我对JAVA中的线程概念非常陌生,虽然我尝试了一些代码,它们都能正常工作,但我真的不太明白在后台发生了什么。例如,我编写了以下代码:

public class myThreadTest implements Runnable {
  private static void ping(String text, int count) 
                      throws InterruptedException {
    for (int i = 0; i<count; i++) {
      System.out.println("ping "+text+i+"...");
      Thread.sleep(1000);
    }
  }
  public void run() {
    try {
      ping("run ",10);
    } catch (InterruptedException e) {
    }
  }  
  public static void main(String[] args) {
    (new Thread(new myThreadTest())).start();
    try {
      ping("main ", 5);
    } catch (InterruptedException e) {
    }
 }
}
公共类myThreadTest实现可运行{
私有静态无效ping(字符串文本,整数计数)
抛出中断异常{

对于(int i=0;i这是正确的。请尝试在您的
ping()
方法中打印,以查看不同的线程正在运行(您也可以命名线程,作为练习,我将按照此命名,以便了解哪个线程正在做什么)

是的,这两个线程同时执行

线程是程序中的执行线程。 Java虚拟机允许应用程序同时运行多个执行线程


在开始编码之前,我强烈推荐您。祝您好运java中的线程主要与并发性有关,并发性是指同时发生多件事情的概念。线程是程序中独立的执行路径


从您的程序中,我可以看到您的代码在启动时启动了两个线程运行第一个命令for循环休眠1秒,然后运行run方法并来回运行,直到for循环耗尽,因此运行继续到9

有两个线程。其中一个线程已创建并开始执行其
运行
方法由于主块中的
start
调用而异步执行。另一个线程正在执行
main
方法本身