javaweb 高并发,和多线程。为什么没有一本书上都没有写怎么用啊。 比如线程池这些。

2019-07-03 22:04:05 +08:00
 Midnight17
遇到 java 的面试,怎么用线程池,我连个例子都找不到。虽然有很多高并发设计的书。 我怎么才能在百万级流量入门。
7013 次点击
所在节点    Java
28 条回复
wysnylc
2019-07-04 10:34:48 +08:00
因为单机线程池没鸟用,解决并发的最终方案只有队列
solwyer
2019-07-04 10:37:43 +08:00
本人做了一个 java 学习分享网站,大佬帮我看看:java 自学之路系列: http://how2j.cn/p/2199
micean
2019-07-04 11:09:21 +08:00
去有百万流量的公司上班
nonprocoder
2019-07-04 11:22:56 +08:00
大部分写书的都是水货,东拼西凑,去外网翻译文档,知道个毛
Chabuduo001
2019-07-04 15:13:19 +08:00
如果想找线程池的例子,可以看 Tomcat 源码中自定义的线程池 Executor。有具体的实现场景才能更好的理解
autogen
2019-07-04 23:22:56 +08:00
javaweb 高并发,

一般是通过 CDN,负载均衡,缓存,读写分离,离线处理,合并请求,堆机器实现的。

静态的页面交给 CDN 和 WEB 服务器,Java 只处理动态数据;

对 DB 查询请求加缓存;

DB 搞 1M 多 S,读从 Slave 读,减轻 Master 压力,甚至可以根据 hash(key)做分库,部署多个 M ;

对统计类的操作,丢到 MQ 里,外挂一个程序离线处理;

如果有很多类似的 Req,可以合并起来处理;

在 Java 服务器前加一层 LVS,然后就可以无限堆机器了。

另外,如果业务地之间距离比较远,比如一个在纽约一个在北京(或者一个用电信一个用联通),可以通过分 Set 的方式,在纽约和北京各部署一套完整的服务(或者在电信机房和联通机房各部署一套),用来加速纽约用户(联通用户)的访问速度。再用智能 DNS,自动给用户选择最近的服务器。


-
godoway
2019-07-05 09:37:32 +08:00
tomcat 那种一个请求一条线程而且还是 BIO 弄高并发就是无限堆机器(当然也有 nio 模式)。
真正要搞高并发必须要考虑 io 多路复用了,用 event-loop 异步模型代替。
d23
2019-07-07 21:14:47 +08:00
@tcpdump 我怀疑你在开车

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/579779

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX