我是线程新手。我如何才能t.join
工作,从而使调用它的线程一直等到t完成执行?
这段代码只会冻结程序,因为线程正在等待自身死亡,对吧?
public static void main(String[] args) throws InterruptedException {
Thread t0 = new Thready();
t0.start();
}
@Override
public void run() {
for (String s : info) {
try {
join();
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.printf("%s %s%n", getName(), s);
}
}
如果我想拥有两个线程,一个线程打印出一半的info
数组,然后等待另一个线程完成,然后再进行其余操作,该怎么办?
使用这样的东西:
public void executeMultiThread(int numThreads)
throws Exception
{
List threads = new ArrayList();
for (int i = 0; i < numThreads; i++)
{
Thread t = new Thread(new Runnable()
{
public void run()
{
// do your work
}
});
// System.out.println("STARTING: " + t);
t.start();
threads.add(t);
}
for (int i = 0; i < threads.size(); i++)
{
// Big number to wait so this can be debugged
// System.out.println("JOINING: " + threads.get(i));
((Thread)threads.get(i)).join(1000000);
}
问题内容: 我如何对我要排序的东西进行排序? 另外,和方法之间有区别吗? 问题答案: 使用构造函数重载,该重载采用并传入一个比较器,该比较器以适合你的排序顺序的方式进行比较。如果你举一个如何排序的例子,如果不确定,我们可以提供一些示例代码来实现比较器。(虽然非常简单。) 正如其他地方所说:和只是不同的接口方法实现。在JDK源代码中,请致电。尽管由于具有指示由于大小限制而无法添加该值的能力,通常和可
本文向大家介绍如何使用JAVA调用SHELL,包括了如何使用JAVA调用SHELL的使用技巧和注意事项,需要的朋友参考一下 通过ProcessBuilder进行调度 这种方法比较直观,而且参数的设置也比较方便, 比如我在实践中的代码(我隐藏了部分业务代码): 这里有必要解释一下几个参数: RUNNING_SHELL_FILE:要运行的脚本 SHELL_FILE_DIR:要运行的脚本所在的目录; 当
问题内容: 我试图使用开放源代码的Java库来可视化图中的节点和边,但是我完全迷失了。 我的文件夹中有一堆jar文件。单击某些jar文件会使Java swing窗口弹出并显示图形。单击其他jar文件不会执行任何操作。 如果我知道了,我是否会将jar文件与其他文件保存在那里,还是不能使用? 如果我弄清楚了如何使用这些文件,这是否意味着如果我将Java项目转移到另一台计算机上,就必须包括它们?我将如何
我想用这个curl语句做一个请求: 我想创建一个连接到Battle.net(暴雪开发者的API),但我不知道如何实现。我希望有人能帮助我。怪我英语不好。我是这个社区的新手。 错误:
问题内容: 如果我这样做 它打印 问题是,我在代理后面。JVM在Windows的哪里获取代理信息?我该如何设置?我所有其他应用似乎都对我的代理感到非常满意。 问题答案: 从Java 1.5开始,你还可以将实例传递给该方法: 如果你的代理服务器要求身份验证,它将给你响应407。 在这种情况下,你需要以下代码:
问题内容: 我想用于一些Web测试,并且遇到了(https://github.com/detro/ghostdriver)。我已经按照自述文件中的说明进行了构建,并且可以在指定的端口上运行它,但是我不确定如何从Java代码访问Web驱动程序。为了澄清,我已经在ruby中看到了这个示例: 我只是不确定如何从java中执行相同操作。 问题答案: 我相信此链接将回答您的问题。您将需要Selenium 2