社区
Java SE
帖子详情
使用了java 线程池,程序会无端退出,求帮助!
javaprogramlover
2014-03-04 11:54:14
使用了java5带的concurrent包,创建了10一个线程池,运行了一段时间,程序没有任何征兆就退出了---不是死锁。而我把线程池的数降低到2个的时候,就不会出现程序退出的情况。求帮助。我是否需要自定义一个executorservice来在before 和after上监控到底发生了什么。
...全文
300
8
打赏
收藏
使用了java 线程池,程序会无端退出,求帮助!
使用了java5带的concurrent包,创建了10一个线程池,运行了一段时间,程序没有任何征兆就退出了---不是死锁。而我把线程池的数降低到2个的时候,就不会出现程序退出的情况。求帮助。我是否需要自定义一个executorservice来在before 和after上监控到底发生了什么。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
花谢尊前不敢香
2014-03-05
打赏
举报
回复
配置可以啊,你开10个线程,输入top -b -n 2,监控下cpu和内存的变化。
javaprogramlover
2014-03-05
打赏
举报
回复
引用 2 楼 fangmingshijie 的回复:
系统环境是什么样的?
AMD 3核心的 红帽子 linux,连接的是mySQL 数据库。10个消费线程从队列里往数据库保存数据,一个生产线程扫描磁盘!
javaprogramlover
2014-03-05
打赏
举报
回复
public class Broker { public ArrayBlockingQueue<FileWrapper> queue = new ArrayBlockingQueue<FileWrapper>( 4000); public Boolean continueProducing = Boolean.TRUE; public void put(FileWrapper data) throws InterruptedException { this.queue.put(data); } public FileWrapper get() throws InterruptedException { // return this.queue.take(); return this.queue.poll(3, TimeUnit.SECONDS); } }
javaprogramlover
2014-03-05
打赏
举报
回复
try { Broker broker = new Broker(); int consumerCount = 10; ExecutorService threadPool = Executors .newFixedThreadPool(consumerCount + 1); for (int i = 0; i < consumerCount; ++i) { DatabaseFactory.getInstance().saveAliasAs("consumer" + i); threadPool.execute(new Consumer("consumer" + i, broker)); } Future producerStatus = threadPool.submit(new Producer(broker)); // this will wait for the producer to finish its execution. producerStatus.get(); threadPool.shutdown(); threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); } catch (Exception e) { StackUtility.logStackTrace(log, e); }
晓风吹雾
2014-03-04
打赏
举报
回复
代码。。。。。。。。。。。。。。。。
大板牙花生
2014-03-04
打赏
举报
回复
你是不是在线程中加入中断了
花谢尊前不敢香
2014-03-04
打赏
举报
回复
系统环境是什么样的?
javaprogramlover
2014-03-04
打赏
举报
回复
加到100!!!
java
线程异常终止_
java
线程莫名异常
退出
时,如何捕获异常信息
之前有同事说他的
程序
里的线程时常莫名
退出
,日志中没有任何异常信息。目前我知道的可以获取线程异常信息的方法主要有1、Future>和ScheduledFuture>的get()方法2、
JAVA
1.5之后支持的UncaughtExceptionHandler1 Thread thread = new Thread(() -> {run方法内的代码块});2 thread.start(...
走进
Java
里的线程世界
线程基础、线程之间的共享和协作基础概念什么是进程和线程CPU时间片轮转机制澄清并行和并发高并发编程的意义、好处和注意事项认识
Java
里的线程 基础概念 什么是进程和线程 进程是
程序
运行资源分配的最小单位 进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的
程序
关于某...
ScheduledThreadPoolExecutor-并发编程(
Java
)
1、Timer 在认为调度
线程池
功能加入之前,可以
使用
java
.util.Timer来实现定时功能。 优点:简单易用 缺点:由于所以认为都由同一个线程调度,因此所有任务都是串行执行 前一个认为的延迟或者异常将
会
影响到之后的任务 延迟示例: import lombok.extern.slf4j.Slf4j; import
java
.util.Timer; import
java
.util.TimerTask; import
java
.util.concurrent.TimeUnit; @S
深入理解
java
并发、线程与等待通知机制
同一台计算机的进程通信称为 IPC(Inter-process communication),不同计算机之间的进程通信被称为R(mote)PC,需要通过网络,并遵守共同的协议,比如大家熟悉的Dubbo就是一个RPC框架,而Http协议也经常用在RPC上,比如SpringCloud微服务。
程序
计数器是一种专门的寄存器,它指示CPU在其指令序列中的位置,并保存着正在执行的指令的地址或下一条要执行的指令的地址,这取决于具体的系统。从数据来说,以
程序
员的角度来看, 是方法调用过程中的各种局部的变量与资源;
Java
线程间的共享和协作
Java
线程间的共享和协作
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章