Java中常用的锁

synchronized最常见的锁,可以非常快速的实现多线程的同步操作,只需要在需要同步的方法、对象、或代码块中加入该关键字,就能保住同一时刻最多只有一个线程执行 使用synchronized修饰的代码具有原子性和可见性,在需要进程同步的程序中使用的频率非常高,可以满足一般的进程同步要求 Java实现的锁机制有很多种,并且有些锁机制性能也比synchronized高,但还是强烈推荐在多线...

发布于 Java

Java中的Unsafe类

众所周知,Java成为现在广泛使用的后端语言之一就是因为其拥有自动垃圾回收机制,由于垃圾回收的消耗,也导致Java运行效率不如没有垃圾回收机制的C++等,本文介绍Java中“不安全”的部分—手动申请和释放内存

发布于 Java

进程通信之信号量

信号量(Semaphore)的概念最早由荷兰计算机科学家 Dijkstra(迪杰斯特拉)提出,有时又称“信号灯”。

发布于 操作系统

进程通信之共享内存

共享内存是一种用于实现进程间通信(IPC)的方法,不同进程通过访问同一块内存区域实现数据共享和交互。每个进程可以将自身的虚拟地址映射到物理内存中的特定区域,当不同进程将相同的物理内存区域与各自的虚拟地址空间关联时,这些进程就能实现通过共享内存来完成IPC。若某进程更改了共享内存区的内容,其它进程都会觉察到该区域的更改。

发布于 操作系统

进程通信之信号

在 Linux 中,理解信号的概念是非常重要的。这是因为,信号被用于通过 Linux 命令行所做的一些常见活动中。例如,每当你按 Ctrl+C 组合键来从命令行终结一个命令的执行,你就使用了信号。知道信号的基本原理是非常有用的。

发布于 操作系统

vim常用配置

记录以下vim比较好用的配置,添加到~/.vimrc即可

发布于 应用程序

a++、++a和+=区别

比较效率和原理

发布于 其他

Java垃圾收集器

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。

发布于 Java

计算机中整数的表示

整数表示无符号数的编码 C/C++支持有符号(默认)和无符号数,Java只支持有符号数 一个$\omega$位的整数看作$\vec{x}$表示整个向量,或者写成$[x_{\omega -1}, x_{\omega -2}, …, x_0]$ ,表示向量中的每一位,可得出无符号数编码的定义 $B2U_\omega$(Binary to Unsighed),对于向量$\vec{x}=[x_{...

发布于 操作系统

DNS查询步骤

DNS:互联网的目录服务DNS的主要任务 一个分层的DNS服务器实现的分布式数据库 一个使得主机能够查询分布式数据库的应用层协议 DNS是能够进行主机名到IP地址转换的目录服务。DNS协议运行在UDP之上,使用53号端口。 DNS提供的其他服务 主机别名(host aliasing):应用程序可以通过调用DNS来获得主机别名对应的规范主机名(canonical hostname)和IP地...

发布于 其他
12346