单线程的程序只有一个顺序执行流,多线程的程序则可以包括多个顺序执行流,多个顺序流之间互补干扰。可以这样理解:单线程的程序如同雇佣一个服务员的餐厅,他必须做完一件事情后才可以做下一件事情;多线程的程序如同雇佣多个服务员的餐厅,他们可以同时做多件事情。
java语言提供了非常优秀的多线程支持,程序可以通过简单的方式来启动多线程。本文将会详细介绍java多线程编程的相关方面,包括创建、启动线程、控制线程,以及多线程的同步操作,并会介绍如何利用java内建支持的线程池
来提高多线程性能。
本文系阅读《高性能MySQL》,Baron Schwartz等著
一书中第六章 查询性能优化
的笔记,本章关注的是合理的设计查询
,如果查询写的很糟糕,即时库表结构再合理
、索引再合适
,也无法实现高性能。
查询优化
、索引优化
、库表结构优化
需要齐头并进,一个不落。在获得编写mysql查询的经验的同时,也将学习到如何为高效的查询设计表和索引。同样的,也可以学习到在优化库表结构时会影响到哪些类型的查询。
本章将从查询设计的一些基本原则开始——这也是在发现查询效率不高的时候首先需要考虑的因素。然后会介绍一些更深的查询优化的技巧,并会介绍一些mysql优化器内部的机制。之后将展示mysql是如何执行查询的,学习如何去改变一个查询的执行计划。最后,了解mysql优化器在哪些方面做的还不够,并探索查询优化的模式,以帮助mysql更有效的执行查询。
本章的目标是深刻的理解mysql如何真正的执行查询,并明白高效和低效的原因。
WebStorm版本号WebStorm-2016.1.3
在windows平台的安装及使用。
IntelliJ IDEA版本号ideaIU-2017.1.4
在windows平台的安装及使用。
本文对在github pages上搭建个人主页的流程进行整理。
本文树
、二叉树
部分系阅读《数据结构(C语言版)》,严蔚敏等著
一书中第六章 树和二叉树
部分章节的笔记。树
形结构是一类重要的非线性数据结构,直观看来,树
是以分支关系定义的层次结构。树
结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树
来形象表示。树
在计算机领域中也得到广泛应用,如在编译程序中,可用树
来表示源程序的语法结构。又如在数据库系统中,树
形结构也是信息的重要组织形式之一。本章重点讨论二叉树
的存储结构及其各种操作,并研究树
和森林
与二叉树
的转换关系。