Java synchronized

本文由Scarb发表于金甲虫的博客,转载请注明出处

synchronized

阅读全文

Java 线程的状态转换以及基本操作

本文由Scarb发表于金甲虫的博客,转载请注明出处

线程的状态转换以及基本操作^线程的状态转换以及基本操作

线程基本操作:sleep yield join

    阅读全文

    Java并发编程的原子性、可见性、有序性和内存模型中相关概念

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    Java并发编程的原子性、可见性、有序性和内存模型中相关概念^1

    1. 内存模型相关概念

    大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会很大程度上降低指令执行的速度。因此在CPU里面就有了高速缓存。

    阅读全文

    Git 操作笔记

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    Git 操作笔记

    [TOC]

    阅读全文

    Vim笔记

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    Vim笔记

    Vim模式

    Normal普通模式

    移动、操作

    阅读全文

    依赖注入和控制反转 Inversion of Control Containers and the Dependency Injection pattern

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    依赖注入和控制反转 Inversion of Control Containers and the Dependency Injection pattern

    UML class and sequence diagram

    阅读全文

    JVM类加载机制

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    JVM类加载机制

    1. 类加载的时机

    1
    2
    3
    4
    5
    6
    7
    8
    st=>start: 加载 Loading
    op1=>operation: 验证 Verification
    op2=>operation: 准备 Preparation
    op3=>operation: 解析 Resolution
    op4=>operation: 初始化 Initialization
    op5=>operation: 使用 Using
    e=>end: 卸载
    st->op1->op2->op3->op4->op5->e

    阅读全文

    Kafka Producer and Consumer Examples Using Java

    Kafka Producer and Consumer Examples Using Java

    Before starting with an example, let’s get familiar first with the common terms and some commands used in Kafka.

    阅读全文

    Python 虚拟环境管理 virtualenv virtualenvwrapper pyenv

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    Python 虚拟环境管理 virtualenv virtualenvwrapper pyenv pyenv-virtualenv

    记录一下python的几个虚拟环境管理包。

    1. virtualenv

    一般直接运行python应用会用系统全局安装的python。
    virtualenv为python建立一个隔离的python环境,方便不同项目用不同版本的包时的切换。

    1.1 virtualenv安装

    1
    $ pip install virtualenv

    1.2 创建环境

    创建虚拟环境,命名为venv

    1
    virtualenv --no-site-packages venv

    这里的--no-site-packages参数指不将系统中已经安装的第三方包复制到这个虚拟环境。这样这个环境只会有setup-toolpip

    阅读全文

    Python logging 笔记

    本文由Scarb发表于金甲虫的博客,转载请注明出处

    Python logging 笔记

    整理一下Python自带的logging模块的使用。

    1. 基本概念

    Logger对象

    Logger不会直接实例化,使用模块级别的函数logging.getLogger(name)可以获取logger对象。获取同名logger会返回相同logger对象的引用。
    name可以是一个用点分割的包含层级关系的值,如foo.bar.baz。较低的层级是高层级logger的子项,较高层级的logger会包含低层logger的日志。

    logger可以设置很多属性,这里不赘述。
    logger对象可以打印日志,用logger.log(level, message)方法。

    日志级别

    级别 重要性数值
    CRITICAL 50
    ERROR 40
    WARNING 30
    INFO 20
    DEBUG 10
    NOTSET 0

    阅读全文