我是一个培训机构出来的 Java 开发,第一学历高中。不怕大家笑话,工作 6 ,,7 年了感觉自己对多线程还是似懂非懂的状态。有没有大佬能教一下多线程应该怎么入门啊?什么时候该用多线程提升性能?什么情况下该用锁?什么情况下不需要用锁?我心里一点没底。
1
emSaVya 362 天前
java 可以看看 Java Concurrency in Practice
|
2
laaaaaa 362 天前
看看 Netty 吧,先看它解决什么问题,在模拟场景去实战
|
3
murmur 362 天前 2
写点什么秒杀、支付、库存之类的就明白了,虽然秒杀也写烂了但是大并发秒杀+库存还是很考验人的
其实现在的大公司也不会写严格的锁,性能太差了,超售直接砍单就完了,pdd 那么砍单不一堆人还是吹 |
4
jonasjiang23 362 天前
主要是你没什么应用场景,所以不知道怎么入门;
多去 b 站找到培训视频看看吧,这样以后面试也懂一点 |
5
mawerss1 362 天前
找个操作系统的课看看
|
6
jonasjiang23 362 天前
光是看 Java Concurrency 并发编程,你看了三个章节,可能还是有点迷糊,到底什么业务场景要用并发;
|
7
looveh OP @jonasjiang23 说的挺对,就是没有业务场景。不知道怎么实现
|
10
heiya 361 天前
我的建议是从操作系统共享变量、锁那块看起,理解之后看《 Java 并发编程实践》
|
11
NewYear 361 天前
楼上说的秒杀的场景,其实可以顺序入库,但是不直接返回数据,过几秒显示结果,确定每个用户下单的顺序,然后删掉额外的就可以了,也不会影响用户体验。
电商的库存这块不是很好弄,但是看需求吧,例如说是以下单为准,还是要以付款为准,付款的时间限制又是什么。 |
13
nice2cu 361 天前
公司数据量大、业务稍微复杂点的话,多线程还是很常见的呀
|
14
sjtulyj 361 天前
rust 中的多线程根本就不需要学
|
17
kingwrcy 361 天前
业务场景自己随便造一个不就有了?
比如某接口是个聚合统计接口,依赖外部 10 个接口的数据。 现在需要你并发 10 个线程异步获取外部 10 个接口的数据。 拿到全部的 10 个结果后,对结果做加工,入库。 如果你单线程,那就耗时很久,如果多线程,如何控制 10 个线程全部结束再执行你的后续代码。 这个就是一个非常基础的多线程场景。 再比如跑批任务,每天需要对 100 万数据进行清洗,单线程清洗,可能一天都跑不完,需要多线程跑。 那问题来了,如果让每个线程只负责其中一部分数据,涉及到数的分而治之,并且全部清洗完完成后还要执行后续逻辑。 这也是个非常基础的多线程场景。 |
18
guo4224 361 天前 via iPhone
买本 apue 翻翻
|
19
wniming 361 天前
|
20
wangkun025 361 天前
握手啊。
我也不懂。 |
21
zapper 361 天前 1
多线程你不一定要用 java 啊。找个什么 python 多线程跑个下载任务或者爬虫玩玩。一上来就锁来锁去的反而更不明白了
|
24
siweipancc 361 天前 via iPhone
写个玩具,爬 e 站的本子
1. 要求打满带宽 2. 输出统计数据到文档 3. 实时显示任务完成占比 |
25
wlm201219 361 天前
@siweipancc 放过 e 站吧,换个没良心的网站练手
|
26
kneo 361 天前 via Android
一个多线程有什么学不明白的?随便入门书或者教程读一遍抄一遍代码不就完了?我看你就是懒。
|
28
shawnsh 361 天前 via Android
跟培训和学历有个锤子关系,想学基本概念就看操作系统。想速成就搜索相关的书籍。
|
29
cyanray 361 天前 1
《操作系统导论》作者: [美] Remzi H. Arpaci-Dusseau / [美] Andrea C. Arpaci-Dusseau 出版社: 人民邮电出版社
这本书写的很好,也没有翻译腔。不推荐看别人的项目说明、博客笔记来学习这些比较基础的东西,会错过很多细节。 |
30
lyxxxh2 361 天前
你只是要用多线程 问 gpt 直接用
别看什么底层书籍 |
31
8355 361 天前
1.你需要实现一个中台接口,并行调用内部和外部多和接口并将接口返回值进行拼接返回。理论上要求你接口的响应时间略高于响应时间最长接口的时间。
2.前台有一个接口接收第三方的回调数据存入数据表,你需要在后台脚本尽可能的实时扫表处理每条数据,要求是不能重复处理,需要准实时处理。 3.大批量发送站内信/app push/短信/邮件 4.excel 导入大表,高效清洗组装数据入库 5.电商系统风控模型,需要根据用户行为/下单/登陆/历史订单/地址/支付等多种信息判断该订单是否需要风控拦截。 |