相关疑难解决方法(0)

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

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

java multithreading wait

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

使用Runnable在Java中实现回调

我习惯用类似JavaScript或类似Erlang的语言编写代码,在那里我可以轻松地创建回调函数.现在我必须用Java写一些东西.我想出了如何执行这样的回调:

import java.util.*;

class Demo extends Thread{

    private int data;

    public void run(){
        ask_for_data(new Runnable(){
            public void run(){
                on_data();
            }
        });
    }

    public void on_data(){
        System.out.println("Async callback: " + data);
    }

    public void ask_for_data(final Runnable callback){
        System.out.println("2");
        Runnable r = new Runnable(){
            public void run(){
                data = get_data();
                new Thread(callback).start();
            }
        };
        new Thread(r).start();
    }

    public int get_data(){
        try{
            Thread.sleep(1000);
        } catch (Exception e) {};
        return 42;
    }

    public static void main(String[] args) {
        Demo d = new Demo();
        d.start(); …
Run Code Online (Sandbox Code Playgroud)

java asynchronous

20
推荐指数
2
解决办法
5万
查看次数

标签 统计

java ×2

asynchronous ×1

multithreading ×1

wait ×1