我正在编写一个包含5个线程的应用程序,它们可以同时从Web获取一些信息,并在缓冲类中填充5个不同的字段.
当所有线程完成工作时,我需要验证缓冲区数据并将其存储在数据库中.
我该怎么做(当所有线程完成工作时收到警报)?
基本上,问题标题是什么.
Thread t = new Thread(someRunnable);
t.start();
t.interrupt();
t.join(); //does an InterruptedException get thrown immediately here?
Run Code Online (Sandbox Code Playgroud)
从我自己的测试来看,似乎,但只是想确定.我猜测在执行"等待"例程之前Thread.join()检查interrupted线程的状态?
java concurrency multithreading interrupt interrupted-exception
我是多线程的新手.我知道关于线程的以下内容:
thread_obj.join() 保持线程直到它结束
thread_obj.join(5000)保持线程5秒.然后以其他线程运行.
我知道那个join()并且join(millis)持有一段时间的线程.我的问题是,如果我们有更多的时间join()则sleep()喜欢join(5000)和sleep(1000)它将会运行得很好,并线保持5秒.再经过运行其他线程,但如果你在提供更少的时间join(),然后sleep()像,join(500)并sleep(2000)在join()保持线程,直到它结束了.
我有以下代码,我不明白 join()
public class THRD3 extends Thread {
public void run() {
for(int i = 1 ; i <= 10 ; i++) {
System.out.println(Thread.currentThread().getName()+" : "+i);
try {
//Thread.sleep(500);
Thread.sleep(2000);
}
catch (InterruptedException e) {e.printStackTrace();}
}
}
public static void main(String[] args) throws InterruptedException {
THRD3 obj = new THRD3();
THRD3 obj1 …Run Code Online (Sandbox Code Playgroud)