社区
Java SE
帖子详情
在使用java多线程时遇到了问题,困惑
liuyyuns
2011-08-02 10:15:38
我在项目中为了使用异步,就选择了多线程,刚开始是挺好的,但是运行了几天发现了问题,当访问量大的时候,会创建好多线程,每一个线程都在请求同一个服务,就会有线程处于阻塞状态,最后会导致系统资源耗尽,处于宕机状态。
这种问题该如何解决?或者是我想给每一个线程3秒钟的时间,3秒钟之后就让线程stop了。
求思路。
...全文
177
16
打赏
收藏
在使用java多线程时遇到了问题,困惑
我在项目中为了使用异步,就选择了多线程,刚开始是挺好的,但是运行了几天发现了问题,当访问量大的时候,会创建好多线程,每一个线程都在请求同一个服务,就会有线程处于阻塞状态,最后会导致系统资源耗尽,处于宕机状态。 这种问题该如何解决?或者是我想给每一个线程3秒钟的时间,3秒钟之后就让线程stop了。 求思路。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qybao
2011-08-02
打赏
举报
回复
[Quote=引用 3 楼 liuyyuns 的回复:]
引用 1 楼 zl3450341 的回复:
用线程池吧。
ExecutorService pool = Executors.Fixed.....(线程数);
....
....很容易用。
跟数据库连接池道理一样。
用线程池试试,比如线程池最多可以有100个线程,但是当有101个线程的时候该怎么办?
[/Quote]
线程池可以选择策略的
ThreadPoolExecutor.AbortPolicy
ThreadPoolExecutor.CallerRunsPolicy
ThreadPoolExecutor.DiscardOldestPolicy
ThreadPoolExecutor.DiscardPolicy
就看你自己想怎么处理
ekvv9x3p
2011-08-02
打赏
举报
回复
线程池就可以啊 很好 用的
meran
2011-08-02
打赏
举报
回复
[Quote=引用 3 楼 liuyyuns 的回复:]
引用 1 楼 zl3450341 的回复:
用线程池吧。
ExecutorService pool = Executors.Fixed.....(线程数);
....
....很容易用。
跟数据库连接池道理一样。
用线程池试试,比如线程池最多可以有100个线程,但是当有101个线程的时候该怎么办?
[/Quote]
101 个就阻塞等待,等哪个线程空了就 用那个线程服务。 线程池自己调度
meran
2011-08-02
打赏
举报
回复
[Quote=引用 1 楼 zl3450341 的回复:]
用线程池吧。
ExecutorService pool = Executors.Fixed.....(线程数);
....
....很容易用。
跟数据库连接池道理一样。
[/Quote]
这家伙上班就是逛csdn的
liuyyuns
2011-08-02
打赏
举报
回复
[Quote=引用 1 楼 zl3450341 的回复:]
用线程池吧。
ExecutorService pool = Executors.Fixed.....(线程数);
....
....很容易用。
跟数据库连接池道理一样。
[/Quote]
用线程池试试,比如线程池最多可以有100个线程,但是当有101个线程的时候该怎么办?
飞跃颠峰
2011-08-02
打赏
举报
回复
1楼说得对
听1楼的
zl3450341
2011-08-02
打赏
举报
回复
用线程池吧。
ExecutorService pool = Executors.Fixed.....(线程数);
....
....很容易用。
跟数据库连接池道理一样。
wangbin0016
2011-08-02
打赏
举报
回复
[Quote=引用 15 楼 liuyyuns 的回复:]
我用的Timer设置了3秒钟,但是没有起到作用,线程还是继续执行,直到抛出了超时异常。
那可能是你线程在请求服务 。 阻塞在哪里,然后超时后 抛出异常。
这个时候 即使你用 interrupted 是不起作用的。直接stop也不是很好。stop方法是不安全的
liuyyuns
2011-08-02
打赏
举报
回复
我用的Timer设置了3秒钟,但是没有起到作用,线程还是继续执行,直到抛出了超时异常。
蒙奇D路飞
2011-08-02
打赏
举报
回复
既然你都说了不想让它等,那就设置个计时器,到了时间没有反应,就杀死线程喽
etnet
2011-08-02
打赏
举报
回复
[Quote=引用 8 楼 liuyyuns 的回复:]
线程池解决不了我的问题,如果有100个线程,每个线程都在请求服务,而服务是断开的,永远都不会请求成功,会一直处于等待,直到抛出链接超时异常。
我就是想让线程死掉。
[/Quote]
那么你没有什么办法判断服务是不是可用吗?或者设定一个较短的超时时间.
贪睡的兔子
2011-08-02
打赏
举报
回复
隔三秒把线程池里的线程全杀死,弄个计数器
liuyyuns
2011-08-02
打赏
举报
回复
[Quote=引用 10 楼 zaibuzhankkk 的回复:]
第101个线程就会等。。等啊等
[/Quote]
我不想让它等
再不斩
2011-08-02
打赏
举报
回复
第101个线程就会等。。等啊等
soli11722984
2011-08-02
打赏
举报
回复
那就设置个超时时间,超过了,就关了
liuyyuns
2011-08-02
打赏
举报
回复
线程池解决不了我的问题,如果有100个线程,每个线程都在请求服务,而服务是断开的,永远都不会请求成功,会一直处于等待,直到抛出链接超时异常。
我就是想让线程死掉。
JAVA
入门1.2.3:一个老鸟的
JAVA
学习心得 PART1(共3个)
5.2.3 一“实”多“名”带来的
困惑
111 5.3 多维数组 114 5.3.1 什么是多维数组 114 5.3.2 多维数组的实质 115 5.4 数组大练兵 123 5.4.1 轻松查询全班成绩 123 5.4.2 轻松查询全校成绩不在话下 124 5.4.3 ...
40个
Java
多线程
问题
总结
前言这篇文章主要是对
多线程
的
问题
进行总结的,因此罗列了40个
多线程
的
问题
。这些
多线程
的
问题
,有些来源于各大网站、有些来源于自己的思考。可能有些
问题
网上有、可能有些
问题
对应的答案也有、也可能有些各位网友也...
JAVA
多线程
精讲下
本课程是《零基础学
Java
》系列课程中的"
多线程
"相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解
Java
多线程
的原理及实现运行机制,深刻学习
多线程
的生命...
java
多线程
执行不同的运算_
Java
多线程
面试题合集
Java
多线程
面试题合集
时
间:2017-05-26来源:华清远见
JAVA
学院
Java
多线程
问题
一直是
Java
面试过程中很容易出现的
问题
,也是比较容易出错的
问题
,今天华清
Java
学院就为大家整理分享一篇
Java
多线程
面试题合集,希望对...
Java
中在学习
多线程
中
遇到
的
问题
java
多线程
分类的
问题
,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对
多线程
的
问题
进行总结的,因此罗列了40个
多线程
的
问题
。 前言...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章