![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
会降低房价是否
记录一些点点滴滴,能为他人带来收获,吾心足以
展开
-
java中使用线程池,如何保证子线程全部结束再去执行主线程
背景: 我们打算使用 ThreadPoolExecutor 建立一个100个线程的线程池,然后异步的去submit任务,每来一个任务,我们就去消耗一个线程,使用完再归还,如果多线程是最后一步,调用完就结束不会有任何问题,但是无独有偶,我就想调用完所有的子线程然后再后续操作,这其中依赖子线程的结果。那么这个时候就会造成线程不安全。 解决办法 方法有很多,信号量啊,thread.join,等等,不过都相对于繁琐,这里推荐一个好用的方法shutdown()和awaitTermination(180, Time原创 2021-11-20 17:59:30 · 1269 阅读 · 0 评论 -
重定向不适用Runtime.getRuntime().exec()
踏遍千山万水寻找真相 背景: 我们都知道有时候会使用java来调用linux服务器上的命令,这时候自热而然的我们就想到了Runtime.getRuntime().exec(),但是今天再调用一个hive -e命令时就发生了意外。 解析: Runtime.getRuntime().exec()和直接在linux环境中调用命令不完全一致! 比如重定向,直接用Runtime.getRuntime().exec()调用会出现阻塞,卡住,不能执行成功 解决方法 Runtime.getRuntime().exec(ne原创 2021-11-20 17:35:25 · 1501 阅读 · 0 评论