
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
堆和栈的定义java把内存分成栈内存和堆内存。(1)栈内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。(2)堆内存堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾
引入Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。Java虚拟机运行时数据区如图所示1.程序计数器(线程私有)作用记录当前线程所执行到的字节码的行号。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。意义JVM的多线程是通过线程轮流切换并分配处理器来实现的,对于我们来说的并行事实上一个处理
引入为了更好的理解5种IO模型的区别,在介绍IO模型之前,我先介绍几个概念1.进程的切换(1)定义为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。即从用户态(较低的3G字节)切换到内核态(最高的1G字节),非常消耗系统资源。(2)过程保存处理机上下文,包括程序计数器和其他寄存器。更新PCB信息。把进程的PCB移入相应的队列,如就绪、在某事件阻塞等队
引入之前讲了select、poll、epoll的区别,由于许多应用中都用到了epoll,例如Netty、Redis等等,所以就来深入学习一下,现在我们就来剖析一下epoll的源码我先来剖析理解epoll源码的基础:主要的数据结构,然后再来解析epoll主要的三个方法:epoll_create()、epoll_ctl()、epoll_wait()。主要的数据结构1.eventpoll// epo
1.BIO、NIO和AIO的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。AIO:一个有效请求一个线程,客户端的I/O请求都是由OS先完成了







