Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来... ...
分类:
其他好文 时间:
2017-04-04 17:15:22
阅读次数:
225
王康 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1,预处理,编译,链接和目标文件的格式: 1, 预处理为cpp预处理文件 hello.s汇编代码--hello.o二进制目标文件( ...
分类:
其他好文 时间:
2017-04-03 00:19:14
阅读次数:
347
计算机执行机器代码,用字节编码低级的操作,包括处理数据、管理存储器、读写存储设备上的数据,利用网络通信,编译器基于变成语言的原则, 目标机器的指令集合操作系统遵循的原则,经过一系列阶段产生机器代码,gcc c语言编辑器以汇编代码的形式输出,汇编代码是机器代码的文本表示,给出程序的每一条指令。然后gc ...
分类:
其他好文 时间:
2017-03-31 20:36:54
阅读次数:
205
转自:http://blog.csdn.net/morewindows/article/details/7429155 上一篇《多线程--第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果 ...
分类:
编程语言 时间:
2017-03-25 22:32:04
阅读次数:
173
最近在学习《深入理解计算机系统》,里面的代码是在Linux环境下的C语言编写,由于采用gcc编译环境,为方便本人学习,特在Windows环境下载了MinGM,并且配合Sublime编辑器,发挥很大功能,能够实现简单C程序的编译,运行和反编译查看汇编代码。 1.安装MinGW 在安装Dev C++的过 ...
分类:
编程语言 时间:
2017-03-23 01:39:36
阅读次数:
248
一、GUN处理目标文件的工具 首先对一个c文件进行编译生成.o目标文件 然后可以通过nm 和readelf来查看目标文件的符号表 nm > 其中 B 全局非初始化数据段(BBS段)的符号,其值表示该符号在bss段中的偏移,如g1 b 全局static的符号,如g3 r const型只读的变量(rea ...
分类:
其他好文 时间:
2017-03-21 12:57:42
阅读次数:
252
不论我们是在用C语言还是用JAVA或是其他的语言编程时,我们会被屏蔽了程序的机器级的实现。机器语言不需要被编译,可以直接被CPU执行,其执行速度十分 快。但是机器语言的读写性与移植性较高级语言低。高级语言被编译后便成为了汇编语言,汇编语言十分接近机器语言。之后汇编代码会转化为机器语言。虽然现代 的编 ...
分类:
其他好文 时间:
2017-03-18 22:41:21
阅读次数:
279
钟晶晶 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 工作过程 以41号进程dup为例,说明在应用程序如何使用Linux的系统调用。dup()复制一个打开的文件描述符,并返回一个新描 ...
分类:
其他好文 时间:
2017-03-17 15:57:45
阅读次数:
263
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 首先从系统调用表中选择一个系统调用,我选择了122号系统调用——uname 先用man查一下api是怎么使用的 这里的2表示查询系统调用uname(2),否则默认查的是uname(1),也就是在shell中运行的uname程序。 可以 ...
分类:
系统相关 时间:
2017-03-11 18:52:29
阅读次数:
211
堆 和 栈的 区别(经典) 转载一篇理解堆和栈区别的好文章 此文章虽然是面向C/C++程序员写得,但是对咱们Java程序员还是很有帮助的。 堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参 ...
分类:
其他好文 时间:
2017-02-27 01:08:59
阅读次数:
198