当我使用Thread.sleep();
时,它暂停了我的整个程序。有没有什么能够在不使用多线程的情况下暂停一个类?Java:如何暂停运行一个类?
0
A
回答
0
不可以。你有主线程。睡眠会暂停它。如果你想在不影响主线程的情况下运行某些东西,你需要将它从主线程中分离出来,通过使用addiotnal线程
2
你不能暂停一个“class”本身。一个类只是一个“死”的容器。
你可以做什么是暂停一个线程或任务。
通常,您会创建一个单独的线程来运行您想暂停的任务,并在您喜欢时暂停它 - 因为它运行在单独的线程中,它不会挂起整个程序。
见这个简单的例子,你可以运行,以便更好地理解如何线程可以并行运行:
public static void main(String[] args) throws InterruptedException {
Runnable lazyTask = new Runnable() {
@Override
public void run() {
System.out.println("Lazy: I feel like sleeping for a second");
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {}
System.out.println("Lazy: I feel better now");
}
};
new Thread(lazyTask).start();
//Let's wait a bit until the lazy task goes to sleep
Thread.sleep(100);
//now you can do something that will not hang
System.out.println("Main: I'm sleeping too, but only half a second");
Thread.sleep(500);
System.out.println("Main: And I can continue my job while that lazy task is still asleep");
}
4
你不暂停课程,您暂停线程。在暂停您的唯一线程的那一刻,您也会暂停整个应用程序。因此,无法暂停您的唯一线程,并期望应用程序将继续运行。如果您希望您的应用程序不仅仅是等待,您将需要多个线程。
3
我想你在这里混淆了一些概念。类和对象不运行。线程运行,它们运行的是由类和对象定义的指令(代码)。
所以不,不能暂停一个Class或Object,只能是一个Thread。此外,如果你的应用程序是单线程的,那么你只有一个“主”线程,如果你暂停该线程,那么你的整个应用程序将暂停。
相关问题
- 1. 如何从java servlet控制一个类(运行/暂停)
- 2. Java暂停执行
- 3. 如何暂停JFrame而另一个正在运行
- 4. 如何暂停Java Swing Timer?
- 5. 如何暂停Oracle Job的下一次运行?
- 6. 类星体暂停执行
- 7. 如何暂停PerformSelector执行?
- 8. 运行v功能时,如何暂停对每个情节
- 9. 如何暂停正在运行的动画并使用jquery中的一个按钮运行另一个动画
- 10. 如何暂停一个线程?
- 11. 如何暂停一个线程(python)
- 12. 如何在java中暂停一个线程?
- 13. 如何停止或暂停php执行?
- 14. 可运行的jar在另一个窗口中暂停
- 15. 你如何让一个线程运行它的内容,暂停和重复?
- 16. 如何在短暂暂停后执行某个操作?
- 17. 如何按暂停按钮时暂停程序执行
- 18. 如何在java中进行系统暂停进行调试?
- 19. 如何从另一个类运行Java类?
- 20. 暂停关于Java
- 21. Java,如何在JavaFX中暂停
- 22. 如何在java中暂停线程?
- 23. 暂停执行
- 24. 如何销毁一个线程,暂停/挂起一个线程,恢复/运行一个线程?
- 25. Java - 显示消息对话暂停正在运行的TimerTask
- 26. 暂停并恢复运行mysql查询
- 27. 主线程暂停运行时异常
- 28. 使用jQuery运行/暂停CSS动画
- 29. 运行函数暂停父函数
- 30. 在C中运行/暂停子进程?
对象不定义代码;只有班。一个对象是一个类的实例,只有内存分配给定义的对象变量;代码为同一类的所有实例共享。 ...用于在运行时生成或加载代码的类的小例外,在这种情况下,该类的对象可能暂时在内存(堆)中具有字节码,但在JVM加载之前它不可执行。 – 2012-07-27 21:49:39