多线程怎么入门?

2023-12-26 14:46:19 +08:00
 looveh

我是一个培训机构出来的 Java 开发,第一学历高中。不怕大家笑话,工作 6 ,,7 年了感觉自己对多线程还是似懂非懂的状态。有没有大佬能教一下多线程应该怎么入门啊?什么时候该用多线程提升性能?什么情况下该用锁?什么情况下不需要用锁?我心里一点没底。

3931 次点击
所在节点    程序员
37 条回复
zapper
2023-12-26 20:23:59 +08:00
多线程你不一定要用 java 啊。找个什么 python 多线程跑个下载任务或者爬虫玩玩。一上来就锁来锁去的反而更不明白了
looveh
2023-12-26 20:43:06 +08:00
@zapper python 我语法都不会😭
giter
2023-12-26 20:46:23 +08:00
@looveh #8 多线程涉及到挺多《操作系统》这本书里的内容的,考研 408 的书都挺重要
siweipancc
2023-12-26 22:19:23 +08:00
写个玩具,爬 e 站的本子
1. 要求打满带宽
2. 输出统计数据到文档
3. 实时显示任务完成占比
wlm201219
2023-12-26 22:28:21 +08:00
@siweipancc 放过 e 站吧,换个没良心的网站练手
kneo
2023-12-26 22:28:46 +08:00
一个多线程有什么学不明白的?随便入门书或者教程读一遍抄一遍代码不就完了?我看你就是懒。
xrzxrzxrz
2023-12-26 22:30:24 +08:00
@heiya 同意,我觉得不是业务的问题。是基础的问题。把操作系统学一下,理解系统是怎么运行的,就能理解多线程这些。
shawnsh
2023-12-26 22:31:05 +08:00
跟培训和学历有个锤子关系,想学基本概念就看操作系统。想速成就搜索相关的书籍。
cyanray
2023-12-27 04:43:37 +08:00
《操作系统导论》作者: [美] Remzi H. Arpaci-Dusseau / [美] Andrea C. Arpaci-Dusseau 出版社: 人民邮电出版社
这本书写的很好,也没有翻译腔。不推荐看别人的项目说明、博客笔记来学习这些比较基础的东西,会错过很多细节。
lyxxxh2
2023-12-27 09:36:22 +08:00
你只是要用多线程 问 gpt 直接用
别看什么底层书籍
8355
2023-12-27 10:06:48 +08:00
1.你需要实现一个中台接口,并行调用内部和外部多和接口并将接口返回值进行拼接返回。理论上要求你接口的响应时间略高于响应时间最长接口的时间。
2.前台有一个接口接收第三方的回调数据存入数据表,你需要在后台脚本尽可能的实时扫表处理每条数据,要求是不能重复处理,需要准实时处理。
3.大批量发送站内信/app push/短信/邮件
4.excel 导入大表,高效清洗组装数据入库
5.电商系统风控模型,需要根据用户行为/下单/登陆/历史订单/地址/支付等多种信息判断该订单是否需要风控拦截。
heiya
2023-12-27 10:08:11 +08:00
@looveh 学起来不难,市面上有关的书籍很多,知识都比较固定,这也是必须要学的。学完之后对理解多线程很有帮助。然后在这个基础上学《 Java 并发编程实践》。
looveh
2023-12-27 13:23:08 +08:00
@kneo 这个总结的好,不过确实是我的痛点
looveh
2023-12-27 13:24:21 +08:00
@8355 我之前设计一个消息推送的服务就是类似第 3 点,但是用到了消息队列。多线程方面好像没用。
looveh
2023-12-27 13:24:58 +08:00
@heiya 我感觉好难啊,特别是文字较多的话我看着看着就要睡觉。纸质书籍基本看不下去
looveh
2023-12-27 13:26:36 +08:00
@kingwrcy 你这种的话我倒是之前用 Java 的 CompletedFeature 实现过,有个接口有很多个统计。但是虽然用了,万一出现问题甚至都不知道原因是啥
8355
2023-12-27 13:56:34 +08:00
@looveh #34 如果不用消息队列如何处理,就是单表查数据如何更平均高效的并行处理,这个才是你想了解的问题核心吧,假设有 2 台机器提供部署,每个应用启动 10 个线程,20 个线程该如何均匀的处理 100 万条消息以达到最快的处理速度,并且不重复处理。

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

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

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

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

© 2021 V2EX