
线程和进程
文章平均质量分 51
moxiaoran5753
山重水复疑无路,柳暗花明又一村。有的时候,面对一些疑难问题,我们会显得一筹莫展,但是只要不放弃,坚持不懈去尝试,最终问题必然能迎刃而解,同行共勉!本博客主要记录自己学习和工作中遇到的问题及其解决办法,如果没有及时回复,还请见谅。
展开
-
Java多线程开发中控制线程执行顺序
一般在多线程编程时,需要控制线程的先后执行顺序,比如:主线程中写了子线程t1,想要的效果是需要t1先执行,然后再执行接下来的主线程操作,但是默认的是主线程先执行,所以问题就出现了,执行结果与预期结果不一致。代码中executor.submit依次添加了t1 t2 t3线程,按照FIFO的特性,执行顺序也就是t1 t2 t3的执行结果,从而保证了执行顺序。一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。线程池的底层原理就是一个先进先出(FIFO)的队列。原创 2025-02-23 17:56:08 · 304 阅读 · 0 评论 -
No buffer space available (maximum connections reached?)问题的最终解决
前段时间在项目维护当中遇见一个问题,方便以后再次遇见类似的问题,可以参考解决问题的思路,记录如下:问题概述:维护项目当中,客户这边发来消息,称自己的网站登录不上去了,提示用户名密码错误,我就登录到服务器上查看系统日志和报错情况,如图:这个异常来源部署的一个jar包,用于读取数据存入mongodb,再看了Tomcat也报错了,错误是:java.net.SocketException。...转载 2020-01-15 14:21:04 · 21821 阅读 · 0 评论 -
Java Process中waitFor()的问题
在编写Java程序时,有时候我们需要调用其他的诸如exe,shell这样的程序或脚本。在Java中提供了两种方法来启动其他程序: (1) 使用Runtime的exec()方法 (2) 使用ProcessBuilder的start()方法 。Runtime和ProcessBulider提供了不同的方式来启动程序,设置启动参数、环境变量和工作目录。但是这两种方法都会返回一个用于管理...转载 2020-01-14 16:34:10 · 352 阅读 · 0 评论 -
线程知识点汇总
1.了解进程和线程的区别:进程是程序一次动态执行过程,如打开QQ,打开浏览器。线程是进程基础上进行的进一步划分。比进程更小的执行单位。下面通过word的使用了解进程和线程的区别:在word中如果出现单词拼写错误,word会在出错的单词下划出红线。那么实际上每次启动word对于系统而言就相当于启动了一个进程,而在这个进程之上又有许多其他程序在运行(如拼写检查),那么这些程序就是一个小小的线程。如果...原创 2019-01-21 14:39:38 · 179 阅读 · 0 评论 -
Process.waitFor()导致主线程堵塞问题
今日开发的时候使用jdk自带的运行时变量 RunTime.getRunTime() 去执行bash命令。因为该bash操作耗时比较长,所以使用了Process.waitFor()去等待子线程运行结束。这个时候发现程序卡在waitFor()没有继续往下执行。看了官方解释:waitFor:等待子进程执行结束,或者已终止子进程,此方法立即返回。当RunTime对象调用exec方法后,jv...转载 2020-01-14 15:42:26 · 833 阅读 · 0 评论