ppgjx 发表于 2022-8-7 22:35

java多线程请教

有一个a方法,里面new了一个线程处理数据,这时候我调用这个方法怎么才能在不动a方法代码的情况下,我可以知道这个方法里面的多线程什么时候执行完成,就是让这个方法变成阻塞状态,必须等待这个方法里面的多线程全部处理完毕,才行执行下一行代码

Baiii 发表于 2022-8-7 22:52

Callable Completablefuture等

mnwgkj 发表于 2022-8-8 00:13

真是羡慕那种,像要啥软件,自己就能写的。

剑龙传说 发表于 2022-8-8 00:18

调用join方法,主线程会等待线程执行完成。

初亦泽 发表于 2022-8-8 00:32

用线程池,再用countdownlatchawait一下就OK了

chengxuyuan01 发表于 2022-8-8 08:09

对方法a中需要做同步的代码块加锁,没有拿到锁对象的线程wait或睡眠,等待持有锁的线程释放锁后唤醒其他线程

ashergo 发表于 2022-8-8 08:39

不改变a方法 实现不了

神幻静 发表于 2022-8-8 09:02

countdownlatch 应该就可以了,但是这个也是在方法里加的

zzh2022 发表于 2022-8-8 09:06

高手啊,真厉害

myxiaowang 发表于 2022-8-8 09:18

使用线程池 ,然后用线程池的方法来判断先吃是否执行完成
页: [1] 2
查看完整版本: java多线程请教