在这段代码中,两个连接和断开是什么意思?t1.join()
导致t2
停止,直到t1
终止?
Thread t1 = new Thread(new EventThread("e1"));
t1.start();
Thread t2 = new Thread(new EventThread("e2"));
t2.start();
while (true) {
try {
t1.join();
t2.join();
break;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
join()
表示等待线程完成。这是一种阻止方法。您的主线程(执行 join() 的
线程)将在 t1.join()
行上等待,直到 t1
完成其工作,然后对 t2.join()
执行相同的操作。
这是一个最受欢迎的Java面试问题。
Thread t1 = new Thread(new EventThread("e1"));
t1.start();
Thread e2 = new Thread(new EventThread("e2"));
t2.start();
while (true) {
try {
t1.join(); // 1
t2.join(); // 2 These lines (1,2) are in in public static void main
break;
}
}
< code>t1.join()的意思是,t1说类似“我想先完成”的话。< code>t2的情况也是如此。无论是谁启动了< code>t1或< code>t2线程(在本例中是< code>main方法),main都会等到< code>t1和< code>t2完成它们的任务。
然而,需要注意的一点是,t1
和t2
t2本身可以并行运行,而与
和
t2上的联接调用顺序无关。等待的是
main/daemon
线程。
这个线程连接代码是什么意思?
引用线程.join()
方法的爪哇文档:
< code>join()等待该线程终止。
有一个线程正在运行您的示例代码,它可能是主线程。
t1和t2线程。这两个线程开始并行运行
主线程调用t1.join()
等待t1
thread完成
t1
线程完成,t1.join()
method返回主线程。请注意,在进行join()
调用之前,t1join
主线程调用t2.join()
等待t2
thread完成
t2
线程完成(或者它可能在t1
线程完成之前完成),
方法返回主线程
重要的是要了解
t1
和 t2
线程一直在并行运行,但启动它们的主线程需要等待它们完成才能继续。这是一种常见的模式。此外,t1
和/或 t2
可能在主线程调用 join()
之前完成。如果是这样,那么加入()
将不会等待,但会立即返回。
t1.join()
表示使t2停止,直到t1终止?
线程完成。< code>t2线程并行运行,完全不受< code>t1或< code>t1.join()调用的影响。不会。调用< code>t1.join()
的主线程将停止运行,并等待< code>t1
就try/catch而言,< code>join()抛出< code > interrupted exception ,这意味着调用< code>join()的主线程本身可能会被另一个线程中断。
while (true) {
在而
循环中使用连接是一种奇怪的模式。通常,您会先执行第一个联接,然后再执行第二个联接,在每种情况下适当地处理InterruptedException
。没有必要把它们放在一个循环中。
b & 0xFF for b in这个怎么理解
我运行了几个测试场景,其中我从SOAP客户端调用远程系统的SOA服务,并遇到了各种远程异常。你能帮我确定每个错误意味着什么吗- 1) java.net网站。ConnectException:连接被拒绝“ 2)Java . net . socket time out异常:连接超时" 3) 连接异常: 连接超时”
问题内容: 我是Go的新手,在浏览其他一些线程时遇到了以下代码行: 含义是什么?它是否指定将在if条件中分配某些内容(因为err似乎正在发生这种情况)?我在Wiki上找不到这种语法的示例,并且我很好奇它的用途。 问题答案: 因为返回两个值,所以如果需要它们中的任何一个,都必须在某个地方接收这些值。该是一个占位符,基本的意思是“我不关心这个特殊的返回值。” 在这里,我们只关心检查错误,而无需对实际的
问题内容: 我在阅读“ JPA 2.0中的动态类型安全查询”一 文,偶然发现了以下示例: 我想知道,这里的下划线到底是什么意思? 由于下划线是类名的有效部分,所以我不明白为什么可以在JPA中使用它。我用代码中的现有实体检查了这个,当然我的班级无法解析为 问题答案: 那就是持久性的元模型。这是您可以在Java中键入安全JPA查询的方法。它允许查询静态地检查您的查询,因为类描述了您的JPA 。在HQL
问题内容: 我想知道什么是Java线程转储。有人可以帮我了解什么是线程转储以及它与正在运行的Java程序的关系吗? 问题答案: Java线程转储是一种找出JVM中每个线程在特定时间点正在做什么的方法。如果您的Java应用程序有时在负载下运行时挂起,这将特别有用,因为对转储的分析将显示线程卡在哪里。 您可以通过运行并通过单击生成线程转储。 要了解如何从JVM进行线程转储,请参见此处 要了解如何创建线
问题内容: 我试图从E3roid示例运行示例。除了我什么时候,我都会在页面上强行关闭。这是logcat错误。通过查看它,您能否告诉我这意味着什么,什么问题? 问题答案: 您是否已将AndroidActivity添加到AndroidManifest?