
主要是性能和线程安全
不限于 Java
有没有什么技巧?各位大佬分享一下
1 kaf 2023-02-10 19:59:11 +08:00 首先明白你为什么需要多线程,能给你带来什么好处,又会给你带来什么风险 |
2 zhuangzhuang1988 2023-02-10 20:24:45 +08:00 《 java 并发编程实战》 《 windows 并发编程指南》 这 2 本书看好就好了。 |
3 oldshensheep 2023-02-10 21:04:21 +08:00 via Android 看看我总结的一些例子,多线程编程中会遇到的问题 t/912912 其实我也是看书总结的。 |
4 Huelse 2023-02-10 21:17:44 +08:00 个人认为最好的多线程就是不要手动操作线程,如 FP |
5 adoal 2023-02-10 21:19:18 +08:00 大部分程序员写不好多线程程序。 |
6 em70 2023-02-10 21:25:43 +08:00 我从来不用多线程,我用多进程,每个进程用随机或者轮询读取数据,然后用脚本控制进程的启动和终止 |
7 wangyu17455 2023-02-10 21:25:52 +08:00 如果只是觉得单线程太慢的话用好 parallelstream 就够了。多线程编程不一定非得是 new 好几个锁然后绞尽脑汁思考谁先发生谁后发生,也可以是 B=A.steam().parallel().map(...).map(...) |
8 dobelee 2023-02-10 21:44:33 +08:00 非必要不用就是最好的实践。 |
9 ArcherD 2023-02-10 22:15:24 +08:00 https://github.com/ocaml-multicore/parallel-programming-in-multicore-ocaml 前两天有人说 ocaml 新特性改写了个 http server 性能接近 nginx 了 链接 https://discuss.ocaml.org/t/good-performance-of-ocaml-5s-domain-and-effect/11306/1 |
10 opengps 2023-02-11 11:19:04 +08:00 多写就行了,自然会总结出规律,在工业领域,多线程几乎是必须的,最近的项目更是离谱到需要上百个线程,只不过实际开发未必使用完全的 thread ,往往直接用框架提供的 task 方式 |
11 lmshl 2023-02-11 20:07:19 +08:00 多线程的最佳实践就是不要用多线程。 不要对自己过于自信,认为搞得定多线程,想充分利用多核性能,建议考虑协程和并行流。 比如 kotlin ,suspend 和 flow api ; 比如 scala ,IO Monad 和 Akka stream ; 比如 rust ,async 和 tokio stream ; |