操作系统的介绍:现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只 ...
分类:
其他好文 时间:
2019-10-28 21:18:13
阅读次数:
96
引言 实现并发编程有进程,线程,IO多路复用的方式。(并发和并行我们这里不区分,如果CPU是多核的,可能在多个核同时进行,我们叫并行,如果是单核,需要排队切换,我们叫并发) 进程和线程的区别 进程是计算机资源分配的最小单位,进程是对处理器资源(CPU),虚拟内存(1)的抽象, 虚拟内存是对主存资源( ...
分类:
其他好文 时间:
2019-10-28 13:08:40
阅读次数:
92
一、作用 1. 多线程同步代码,保证方法或者代码块在运行时,同一时刻只有一个线程可以进入到临界区(互斥性) 2. 保证线程间共享变量的修改及时可见(可见性) a. 当线程获取锁时,线程的本地变量无效,需要从主存中获取共享变量的值 b. 线程释放锁时,线程的本地变量被刷新到主存中 3. 有效解决重排序 ...
分类:
其他好文 时间:
2019-10-27 15:09:02
阅读次数:
89
一、缓存 是什么 在计算中,缓存是一个高速存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前的检索或计算的数据。 为什么用缓存 二、自研Java内存缓存 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将 ...
分类:
其他好文 时间:
2019-10-27 12:48:51
阅读次数:
151
昨天学到了伪共享,基本理解了大致的意思: 1,数据变量存储的基本单位是缓存行,有计算机操作系统基础的都知道,现代的计算机为了解决cpu和主存之间的速度差异(主要是cpu比主存的与运行速度快太多了),提出了cache的概念,也就是缓存,一般会有多级缓存,这个不多说。但是现在的这些缓存行的大小一般都是蛮 ...
分类:
其他好文 时间:
2019-10-27 10:33:57
阅读次数:
72
前言应对敏捷开发的需求,对CI(持续集成))/CD(持续交付)的提出了更高的标准,今天来讨论下,如何基于开源组件(gitlab/jenkins/harbor/kubernetes)使用CI/CD,赋能团队的开发、运维。核心组件组件名称版本备注kubernetesv1.15.310.0.0.182:6443jenkins2.176.2集群内部署/namespace:devopsgitlab11.8主
分类:
Web程序 时间:
2019-10-24 11:43:31
阅读次数:
112
深入理解Java内存模型 【1】CPU和缓存的一致性 ? 我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道。而计算机上面的数据,是存放在主存当中的,也就是计算机的物理内存啦。 ? 刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行速 ...
分类:
编程语言 时间:
2019-10-24 00:08:31
阅读次数:
94
进程:系统运行的一个程序,是系统分配资源的基本单位。 线程:是进程中执行运算的最小单位,是处理机调度的基本单位。 处理机:是计算机中存储程序和数据,并按照程序规定的步骤执行指令的部件。包括中央处理器、主存储器、I/O接口。 程序:程序是描述处理机完成某任务的指令序列。 指令:处理机能够解释、直接执行 ...
分类:
编程语言 时间:
2019-10-23 23:49:15
阅读次数:
88
原来CPU寄存器分为两类:
用户可见寄存器,用户可以对这些寄存器进行编程,还可以通过优化使CPU因使用这类寄存器而减少对主存的访问次数,也就是说我们使用汇编语言可以直接对其操作;
控制和状态寄存器,用户不可对其进行编程,他们被控制部件使用,以控制CPU的操作,也可以被带有特权的操作系统程... ...
分类:
系统相关 时间:
2019-10-22 18:07:38
阅读次数:
116
线程安全就是防止某个对象或者值在多个线程中被修改而导致的数据不一致问题,因此我们就需要通过同步机制保证在同一时刻只有一个线程能够访问到该对象或数据,修改数据完毕之后,再将最新数据同步到主存中,使得其他线程都能够得到这个最新数据。下面我们就来了解Java一些基本的同步机制。Java提供了一种稍弱的同步... ...
分类:
编程语言 时间:
2019-10-21 13:40:43
阅读次数:
109