java - 在这个例子中,哪一个是当前线程?
问题描述
我不确定 Thread.sleep(1000) 指的是哪一个,因为两个线程都在运行以及主线程。
我试过在网上搜索答案,但似乎在任何地方都找不到任何东西。
public class Practice {
public static void main(String args[]) {
NewThread ob1 = new NewThread("One");
NewThread ob2 = new NewThread("Two");
ob1.t.start();
ob2.t.start();
try {
Thread.sleep(1000);
} catch(InterruptedException a) {
System.out.println("Exception a caught");
}
}
}
解决方案
Athread
不能让其他任何人thread
睡觉。Thread.sleep()
将始终使当前thread
睡眠。即使您调用ob1.t.sleep()
了,您仍然会通过当前所在static sleep(long millis)
的 a 实例调用该方法。Thread
thread
我再说一遍,你不能让任何其他thread
的睡眠thread
。
是的,当你说:
两个线程以及主线程都在运行。
但是该方法在哪个线程main
中?是ob1.t
还是ob2.t
?不,它是 main thread
,这意味着它将thread
是正在睡觉的 main 。
推荐阅读
- javascript - 使用 VBA 脚本登录网站登录页面
- php - YouTube 数据 API 返回的结果多于 maxResults
- c# - 如何在 ModelState 中预定义键以及如何添加更多键?
- ssis - SSIS 结合 2 个来源,Merge 和 Join 不适用
- r - 如何在 R 中绘制具有 3 个 FACTORS 的分组和堆叠条形图?
- ruby-on-rails - 使用自动递增名称的 Rails 表单中的输入 X 创建 X 数量的新数据库行
- angular - 如何在 Angular 产品构建后减少文件名
- mysql - 返回 5 公里内的项目并加入 4 个不同的表 mysql?
- python - gc 上的分段错误,使用 ctypes
- android - 如何解决错误代码:0,Android 上的消息 HTTP 失败 - IONIC API