linux停止tomcat服务时拒绝连接 29岁想重新做回C 开发工程师,可行吗?

[更新]
·
·
分类:互联网
4382 阅读

29岁想重新做回C

29岁想重新做回C 开发工程师,可行吗?

开发工程师,可行吗?

非计算机专业,不要尝试C和C 这种带“指针”概念的语言,你们学不明白,出了问题都束手无策。JAVA学透了都是研究虚拟机,C学透了都是研究机器码,你没有汇编基础和指令知识,千万别挑战C,学点JAVA,玩玩增删改查就能赚钱,不好吗?

为什么Java坚持多线程不选择协程?

从java被发明的第一天起,就被定义为一个多线程的网络编程语言。Java最大特点并不是跨平台,而是它的多线程模型(那时候的C 中,并没有我们现在看到的thread,C#还没有出来)。因为近二十年的软件行业的增长主要来自网络编程,网络编程最常见的模型就是client/server, 也就是所谓的C/S,这种编程模型在服务器端需要同时接受客户端的请求,也就是说要有很好的并发特性--这个特性主要依赖多线程来实现。而java的主战场就是服务器端编程。所以多线程对java是极为重要,不可或缺的一环。
当我们希望引入协程,我们想解决什么问题。我想不外乎下面几点:
节省资源,轻量,具体就是:节省内存,每个线程需要分配一段栈内存,以及内核里的一些资源节省分配线程的开销(创建和销毁线程要各做一次syscall)节省大量线程切换带来的开销与NIO配合实现非阻塞的编程,提高系统的吞吐使用起来更加舒服顺畅(async await,跑起来是异步的,但写起来感觉上是同步的)我们分开来讲下。
先说内存。拿Java Web编程举例子,一个tomcat上的woker线程池的最大线程数一般会配置为50~500之间(目前springboot的默认值给的200)。也就是说同一时刻可以接受的请求最多也就是这么多。如果超过了最大值,请求直接打失败拒绝处理。假如每个线程给128KB,500个线程放一起的内存占用量大概是60 MB。如果真的有瓶颈,也许CPU,IO,带宽,DB的CPU等会有瓶颈,但这点内存量的增幅对于动辄数个GB的Java运行时进程来说似乎并不是什么大问题。

在30岁开始学习Java是一个玩笑吗?如何学好?

真的要慎重,我之前面试的时候面试官就问能不能加班?他说我就喜欢你们年轻人,要是30岁以上的,他就不敢用,马云不是说了吗?每年要社会输入1000名,不好听点,就是变量的裁员,30几岁以上的员工,而且华为也在做优化