使Java持续运行

使Java持续运行,java,Java,如何使实现java.lang.Runnable接口的类连续运行而不阻塞整个应用程序 例如: private void startHandler(UsbDevice d) { if (mLoop != null) { mConnectionHandler.onErrorLooperRunningAlready(); return; } mLoop = new UsbRunnable(d); mUsbThread = new Threa

如何使实现
java.lang.Runnable
接口的
连续运行而不阻塞整个应用程序

例如:

private void startHandler(UsbDevice d) {
    if (mLoop != null) {
        mConnectionHandler.onErrorLooperRunningAlready();
        return;
    }
    mLoop = new UsbRunnable(d);
    mUsbThread = new Thread(mLoop);
    mUsbThread.start();
}

需要使
mLoop
的run()方法连续运行。UsbRunnable实现Runnable接口。

典型的方法是在
run
中放置一个循环:

public void run() {
    while (!terminationCondition) {
        // Do work
    }
}
run
应该为
Runnable
需要做的全部工作建模,而不仅仅是该工作的一次迭代。所以,如果它需要重复工作直到停止,你可以使用一个循环来完成

如何使实现java.lang.Runnable接口的类连续运行而不阻塞整个应用程序

你需要两件事:

  • run()方法中的循环
  • 通常通过与设备通信来阻止的呼叫

在实现runnable的类的run方法中可以有一个while(true){……}循环。可以将此线程标记为deamon。

什么是
UsbRunnable
s代码?
public class USBRunnable implements Runnable {

  public void run() {
      while (isRunning) {
          data = readFromUSBDevice();  // waits until data is available, returns the data read
          processData(data);
      }
   }
}