Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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,我不确定这是否真的可能,但让我们假设我有两个类。一个在线程内运行无限循环,另一个在方法main内创建该类的实例。所以一切都很好,但我如何在main中处理该实例,以及如何使用无止境循环中断执行线程。 以下是一个例子: public class Main { public static void main(String[] args){ new ThreadClass(); { public class ThreadClass{ public ThreadClass{ try{ T

我不确定这是否真的可能,但让我们假设我有两个类。一个在线程内运行无限循环,另一个在方法main内创建该类的实例。所以一切都很好,但我如何在main中处理该实例,以及如何使用无止境循环中断执行线程。 以下是一个例子:

public class Main {
 public static void main(String[] args){
  new ThreadClass();
{
public class ThreadClass{
 public ThreadClass{
  try{
   Thread t = new Thread(new Runnable(){
    int i = 0;
    public void run(){
     while(true){
      i += 1;
      System.out.println(i);
      }
    }
  });
  t.start();
  }catch(Exception e){
   System.out.println("something ");
  }
 }
}

提前感谢:)

ThreadClass
必须公开一种方法(例如,一种方法)来通知循环终止。(通常包括设置/清除循环在其
while
中使用的
volatile
标志),然后
main
将在…某个适当的时间使用该方法。不清楚您希望它在什么时候运行,但是您应该保留一个对您创建的实例的引用,并且在该时间到来时,您将使用该方法。

该代码不会编译。请求帮助时,提供实际编译的代码通常很重要。(正确格式化也很有用——记住,你是在要求其他人花时间帮助你。)@T.J.Crowder抱歉,我用移动应用程序手动编写了所有这些代码,我可能遗漏了一些东西,但最初我检查了它是否编译。这很有效,谢谢。但是对于同样的情况,如果没有线程,就在循环时,我如何从另一个类停止它,是适合它的volatile,还是其他什么?@GipsyKing-如果它没有在另一个线程上运行,其他代码就不能运行,所以停止循环的唯一方法是从循环中的代码开始。