在深入阅读runtime和标准库的源码时候,发现底层有大片代码都会与汇编打交道,所以这篇文章主要是介绍golang使用到的汇编。 go汇编语言是一个不可忽视的技术。因为哪怕只懂一点点汇编,也便于更好地理解计算机原理,也更容易理解Go语言中动态栈/接口等高级特性的实现原理。 本文涉及到计算机架构体系相 ...
分类:
编程语言 时间:
2020-04-26 11:08:00
阅读次数:
82
OOM 异常 (OutOfMemoryError) OOM 异常 (OutOfMemoryError) Java 堆溢出 Java 虚拟机栈和本地方法栈溢出 方法区和运行时常量池溢出 直接内存溢出 Java 堆溢出 出现标志:java.lang.OutOfMemoryError: Java heap ...
分类:
编程语言 时间:
2020-02-01 19:47:03
阅读次数:
109
栈是一种后进先出的线性表,是最基本的一种数据结构,在许多地方都有应用。 一、什么是栈 栈是限制插入和删除只能在一个位置上进行的线性表。其中,允许插入和删除的一端位于表的末端,叫做栈顶(top),不允许插入和删除的另一端叫做栈底(bottom)。对栈的基本操作有 PUSH(压栈)和 POP (出栈), ...
分类:
其他好文 时间:
2018-10-11 01:39:25
阅读次数:
290
栈有两种实现:静态栈(数组)和动态栈(链表)。这里采用链表。 ...
分类:
其他好文 时间:
2018-08-25 23:02:01
阅读次数:
163
Goroutines和线程: 1.动态栈: 1)线程都有一个固定大小的内存块(一般会是2MB)来做栈 2)一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB,不是固定的;栈的大小会根据需要动态地伸缩 2.Goroutine调度: 1)线程是使用硬件定时器进行的调度,速度慢 2)G ...
分类:
编程语言 时间:
2018-05-24 12:02:17
阅读次数:
217
栈的应用及构造 栈的简介 栈是一种只能从一端进行删除和插入的线性结构。因此栈具有后进先出的特点。例如进栈顺序是12345,如果5是第一个出栈的数字,则接下来出栈的一定是4,3,2,1。由于栈后进先出的特点,所以栈经常被递归算法调用,此时栈被称为递归工作栈。从栈的容量来看,栈可被分为动态栈可静态栈。动 ...
分类:
其他好文 时间:
2018-01-16 00:53:52
阅读次数:
180
栈 (stack) 定义: 一种可以实现“先进后出”的数据存储。 分类: 静态栈:内部数组实现 动态栈:内部链表实现 链表实现: # include <stdio.h> # include <malloc.h> # include <stdlib.h> typedef struct Node { i ...
分类:
其他好文 时间:
2018-01-14 16:48:33
阅读次数:
143
摘自http://www.cnblogs.com/diegodu/p/4552490.html 仅仅是学习收藏。 内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x8 ...
分类:
系统相关 时间:
2017-10-02 10:33:36
阅读次数:
220
栈的定义: 一种可以实现 " 先进后出 " 的存储结构。 栈类似于箱子 栈的分类(主要是看存储的方式连续还是不连续): 静态栈:以数组的形式生成的栈。 动态栈:以链表的形式生成的栈。 栈的算法: 出栈 压栈 栈表的实现: ...
分类:
其他好文 时间:
2017-07-25 22:45:25
阅读次数:
275
一、栈的定义 从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作都是线性操作的子集,它是操作受限的线性表。 栈(stack)是限定仅在表尾进行插入或删除操作的线性表。 栈一般分为两种: 静态栈:用数组实现; 动态栈:用链表实现。 一般用的比较多的都是动态栈。如果学会了链表,其实对栈的操作就比较 ...
分类:
编程语言 时间:
2016-10-29 21:56:28
阅读次数:
251