相关疑难解决方法(0)

等到所有线程完成他们在java中的工作

我正在编写一个包含5个线程的应用程序,它们可以同时从Web获取一些信息,并在缓冲类中填充5个不同的字段.
当所有线程完成工作时,我需要验证缓冲区数据并将其存储在数据库中.
我该怎么做(当所有线程完成工作时收到警报)?

java multithreading wait

80
推荐指数
7
解决办法
13万
查看次数

在Thread.join()之前调用Thread.interrupt()会导致join()立即抛出InterruptedException吗?

基本上,问题标题是什么.

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

13
推荐指数
2
解决办法
1万
查看次数

无法理解Thread join()

我是多线程的新手.我知道关于线程的以下内容:

  • 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)

java multithreading

-3
推荐指数
1
解决办法
100
查看次数