首页编程语言多线程编程语言

多线程编程语言

cysgjjcysgjj时间2024-04-25 02:46:49分类编程语言浏览31
导读:为什么Java坚持多线程不选择协程?为什么Java坚持多线程不选择协程?从java被发明的第一天起,就被定义为一个多线程的网络编程语言。Java最大特点并不是跨平台,而是它的多线程模型(那时候的C++中,并没有我们现在看到的thread,C#还没有出来)。因为近二十年的软件行业的增长主要来自网络编程,网络编程最常见的模型就是clien……...
  1. 为什么Java坚持多线程不选择协程?

什么java坚持多线程选择协程?

Java发明的第一天起,就被定义一个多线程的网络编程语言。J***a最大特点并不是跨平台,而是它的多线程模型(那时候的C++中,并没有我们现在看到的thread,C#还没有出来)。因为近二十年的软件行业的增长主要来自网络编程,网络编程最常见的模型就是client/server, 也就是所谓的C/S,这种编程模型在服务器需要同时接受客户端的请求,也就是说要有很好的并发特性--这个特性主要依赖多线程来实现。而j***a的主战场就是服务器端编程。所以多线程对j***a是极为重要,不可或缺的一环。

当我们希望引入协程,我们想解决什么问题。我想不外乎下面几点:

节省***,轻量,具体就是:节省内存,每个线程需要分配一段栈内存,以及内核里的一些***节省分配线程的开销(创建和销毁线程要各做一次syscall)节省大量线程切换带来的开销与NIO配合实现非阻塞的编程,提高系统的吞吐使用起来更加舒服顺畅(async+await,跑起来是异步的,但写起来感觉上是同步的)我们分开来讲下。

多线程编程语言
图片来源网络,侵删)

先说内存。拿J***a Web编程举例子,一个tomcat上的woker线程池的最大线程数一般配置为50~500之间(目前springboot的默认值给的200)。也就是说同一时刻可以接受的请求最多也就是这么多。如果超过了最大值,请求直接打失败拒绝处理。***如每个线程给128KB,500个线程放一起的内存占用量大概是60+MB。如果真的有瓶颈,也许CPU,IO,带宽,DB的CPU等会有瓶颈,但这点内存量的增幅对于动辄数个GB的J***a运行时进程来说似乎并不是什么大问题。

多线程编程语言
(图片来源网络,侵删)

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/12170.html

线程多线J***a
上海互联网技术服务优点 以及科技创新,以及科技创新能力不断增强