自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

燕归来兮

个人博客站点 www.zhoutao123.com

  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot 事件监听 ApplicationListener

原文链接 https://www.zhoutao123.com/page/book/springboot/category/dmsce7 更多技术文章 & 读书笔记 欢迎访问 燕归来兮 https://www.zhoutao123.comSpringBoot 提供了各种各样的时间监听器( _ApplicationListener 的子类 _),用来订阅SpringBoot在运行阶段的各种事件,整体的这种方式实现的逻辑图如下图: 这个接口是应用的事件的监听器,基于观察者模式实现,从Spr.

2021-03-30 16:43:18 436 3

原创 【MySQL 进阶笔记】InnoDB 的事务隔离级别以及死锁

推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》锁在InnoDB

2020-11-01 23:39:27 226

原创 【MySQL 进阶】InnoDB 存储引擎中的锁

推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》开发者在开发应用的

2020-11-01 23:37:27 227

原创 【并发编程】你知道为什么锁可以保证内存可见性吗?

推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》Lock的内存语义

2020-10-16 09:32:22 2694

原创 【并发编程】你真的知道 final 的内存模型细节吗?

推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》众所周知,fina

2020-10-16 09:28:32 101

原创 【并发编程】天天说Volatile,你知道其内存语义是什么吗?

推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》volatile的

2020-10-16 09:20:46 292

原创 【并发编程】必须要知道的顺序一致性与其内存模型

推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》顺序一致性内存模型

2020-10-16 09:13:14 157

原创 【并发编程】最通俗的话讲解 happens-before 原则

文章目录1、矛盾点2、happens-before 定义3、happens-before 规则4、 总结推荐阅读happens-before是JMM最核心的概念。对应Java程序员来说,理解happens-before是理解 JMM的关键。本章中笔者将用最白话的文字来阐述到底什么是 happens-before 原则以及其作用。1、矛盾点对于开发人员而言,我们希望内存模型易于理解易于编程,因此期待一个强内存模型来实现代码。但对于编译器和处理器而言,其希望内存模型对其束缚越少越好,这样其就可以利用一些手

2020-10-14 07:34:46 2526

原创 【MySQL】 MySQL 索引的创建与维护

文章目录1、索引的创建2、索引的更新与删除4、索引总结1、索引的创建创建索引可以在创建表的时候同步创建,也可以在创建表之后,手动的创建索引,两者没有本质的区别。比如下面的语句就是在创建表的时候创建索引。CREATE TABLE `customer` ( `customer_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `store_id` tinyint(3) unsigned NOT NULL, `first_name` varcha

2020-10-13 16:54:46 275

原创 【MySQL 进阶】索引基础入门与相关知识点

文章目录1. 索引1.1 索引用处1.2 索引的分类1.3 主键的选择1.4 技术名词1.4.1 回表1.4.2 覆盖索引1.4.3 最左匹配1.4.4 索引下推1.5 索引列的匹配方式1.6 哈希索引1.7. 索引优化技巧1. 索引MySQL 的索引所使用的数据结构和具体的存储引擎有关系,索引能够将随机IO 变成顺序IO,大大减少了数据的扫描行数以及帮助服务器排序和避免临时表的创建。1.1 索引用处能够快速的查找和匹配Where 语句的执行从查询中消除行,一般情况下存在多个索引的情况下,My

2020-10-13 16:53:34 115

原创 【MySQL】MySQL 索引常用数据结构

文章目录1. BTREE 数据结构1.1 BTREE 结构的特点1.2 BTREE 构造演示2. BTREE+ 数据结构1. BTREE 数据结构BTREE 又称之为多路平衡搜索树。1.1 BTREE 结构的特点BTREE 具有以下特点:一个M叉的BTREE 数据结构,每个节点最多包含 m-1 个子节点除了根节点和叶子节点外,每个节点至少有 [ceil(m/2)] 个子节点如果根节点不是叶子节点,则其至少有两个分支所有的叶子节点均处在同一层每个非叶子节点由 N 个 Key 和 N+1

2020-10-13 09:46:08 186

原创 【MySQL】 存储类型数据优化

文章目录1、 整数类型2、实数类型3、字符串类型VARCHAR 和 CAHR 类型BLOB 和 TEXT 类型使用枚举 (ENUM) 代替字符串4、时间日期类型5、标识符6、特殊类型MySQL中可以存储两种数据类型:整数类型(whole number)以及实数类型(real number),这两种数据类型有着不同的特点,笔者这里简单记录下其区别和使用时候的需要注意的问题。1、 整数类型MySQL 中存储整数可以使用这几种整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGI

2020-10-13 09:40:25 113

原创 【MySQL 进阶】 选择优化的数据类型

文章目录1. 更小的通常更好2. 简单更好3. 尽量避免使用NULL4. 总结MySQL 支持的类型非常多,选择正确且合适的类型对于获得高性能非常重要。下面有简单的几个原则可以对选择合适的数据类型留下参考依据。1. 更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型,例如只需要存储0-200,使用tinyint unsigned 比int是更好地选择。更小的数据类型通常更快,占用内存和CPU资源更少,以及处理数据时间更短。2. 简单更好简单的数据类型通常更快地处理,同时占用更

2020-10-13 09:37:08 92 2

原创 【MySQL 进阶】InnoDB 存储引擎下的表

文章目录1、索引组织表2、InnoDB 逻辑存储结构2.1 表空间2.2 段 (Segement)2.3 区 (Extent)2.4 页 (Page)2.5 行 (Row)3、InnoDB 行记录格式1、索引组织表在InnoDB 存储引擎中,表都是按照主键顺序组织存放的,这种存储方式称之为所以组织表(Index Origanized Table)。在InnoDB 中每个表都有主键索引,如果没有显式的定义主键,那么则会按照下面的规则选择或者创建主键。首先判断表结构中是够有唯一非空索引,如果有则以该索

2020-10-13 09:33:23 139

原创 【MySQL 进阶】重做日志 与 Checkpoint 技术

1、Redo Log 重做日志前面已经提到,使用 缓冲池技术的原因是为了协调 CPU 以及磁盘速度。页数据的改变通常在缓冲池中执行。如果一条 DML 语句修改了数据造成缓冲池和磁盘中数据不一致的问题。那么此时的页称之为脏页(dirty page)。数据库需要将脏页刷新到磁盘中。但是倘若每一个页变成脏页就要执行一次刷新操作,那么其开销是非常大的。当刷新到磁盘的时候发生宕机,可能就会造成数据丢失,所以事务系统通常采用 Write Ahead Log 的方式,先写重做日志,然后在修改页,如果发生数据丢失通过重做

2020-10-13 09:31:47 177

原创 【MySQL】InnoDB 存储引擎技术架构以及其概述

InnoDB是事务安全的存储引擎,设计上采用类似于 Oracle 数据库的架构。InnoDB 是第一个完整支持 ACID 事物的存储引擎。其特点是行级锁支持、支持MVCC、支持外键等等。InnoDB 存储引擎已被大型互联网公司认证为可靠的数据库存储引擎。1、InnoDB的版本InnoDB 有多个版本的,一种是静态的版本,这里称之为老版本的InnoDB,一种是动态的InnoDB 版本,通过数据库CLI 可以查看到InnoDB 的版本 show variables like 'innodb_version

2020-10-13 09:30:43 132 2

原创 【MySQL 进阶】什么是存储引擎(Save Engines)?

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。1、MySql中有哪些存储引擎?MyISAM:这种引擎是mysql最早提供的

2020-10-13 09:29:17 292

原创 【MySQL 进阶】MySQL 的连接方式

MySQL 支持使用TCP/IP 协议以及Socket方式登录。前者支持大部分的方式,后者仅支持Linux或者Unix环境。1、 TCP/IP 连接TCP/IP 连接是在所有平台下都支持的连接方式。也是网络中均支持的方式。这种方式在客户端和服务端通过网络的方式进行通讯比如下面的场景就是使用TCP/IP 登录的示例。root@5942ac265a6e:/var/lib/mysql/test# mysql -uroot -pEnter password:Welcome to the MySQL m

2020-10-13 09:26:25 113

原创 【MySQL 进阶】MySQL 的体系架构

由下图,可以看出MySQL最上层是连接组件。下面服务器是由连接池、管理工具和服务、SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。1、MySQL 连接层MySQL 客户端: 用户通过TCP 连接到MySQL的服务器,常见的MySQL 客户端包括,JDBC,PHP等等MySQL 连接池:由于每次建立建立需要消耗很多时间,连接池的作用就是将这些连接缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。连接管理主要负责鉴权,线程复用,连接管理等等管理工具和服务:系统管理和控制工

2020-10-12 10:47:01 133 1

原创 【MySQL 进阶】SQL 语句分类

SQL 语句分类(1)数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。(2)数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。(3)数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。(4)嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。1、DDL (Database Definition Language)数据库定义语言DDL是SQL语言的四大功能之一。用于定义

2020-10-12 10:44:50 224 1

原创 【数据结构】线性表之单向链表

并发编程模型 燕归来兮 https://www.zhoutao123.com/page/book/11数据结构与算法 燕归来兮 https://www.zhoutao123.com/page/book/13链表通常指的是单向链表,他包含多个节点,每个节点都有一个纸箱下一个几点的next指针。表中最后一个节点指向NULL,表示链表的结束。下面是一个基于Java 声明的链表节点public class Node<T extends Serializable> { // 节点数..

2020-10-12 10:35:15 174

原创 【数据结构】线性表之数组分析与应用场景

并发编程模型 燕归来兮 https://www.zhoutao123.com/page/book/11数据结构与算法 燕归来兮 https://www.zhoutao123.com/page/book/13整个数组所有的元素存储在操作系统分配的一块连续内存中。通过使用元素特定的索引作为数组下标来查找元素。通常可以在常数时间内访问到数组中的某个元素。1、为什么是常数时间?为了访问一个数组内的某个元素,由于数组的内存地址在内存中是物理连续的,所以该元素的内存地址 = 基地址 + 元素的大小..

2020-10-12 10:30:21 270

原创 同步屏障 CyclicBarrier应用以及其原理

文章系列目录 燕归来兮 https://www.zhoutao123.com/page/book/11CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。 它的作用就是会让一组线程叨叨一个屏障点(或者称之为同步点)时被阻塞,知道最后一个线程到达屏障点时候,其他所有被阻塞的线程都会继续运行。举个例子,就像生活中我们会约朋友们到某个景点一起游玩,有些朋友可能会早到,有些朋友可能会晚到,但是这个景点肯定是一起进入检票。所以每个朋友.

2020-10-12 09:47:37 147

原创 等待多线程完成 CountDownLatch应用以及原理

CountDownLcatch 允许一个线程或者多个线程等待其他线程操作完成。假设我们有这样的需求,需要解析文件中所有的文件,然后汇总文件信息,此时可以考虑使用多线程,等所有的文件解析完成之后,在进行汇总操作。在这个需求中需要实现主线程等待其他所有线程完成解析操作!简单的方式可以使用join() 方法实现,比如下面的代码中展示了使用join() 实现的逻辑,join() 用于等待线程操作结束。其实现的原理是不断地检查join() 线程是否存活,如果存在则让线程不停地等待,线程终止后,线程的this.no

2020-10-12 09:42:08 182

原创 Atomic 更新操作使用案例以及实现原理

上文中介绍了原子化更新的必要性以及其基本实现原理,是使用Unsafe的API记性操作,UNsafe的API 主要是Native级别 的方法,因此,AtomicXXX 基本都是Unsafe类的封装,本篇文章笔者将从实际的类的源码中分析原子类操作的实现方式。1、更新基本类型使用原子类更新基本类型JUC 提供了三种类: AtomicBoolean,AtomicInteger以及AtomicLong。由于这三种基本类型的原理基本类似,笔者这里主要通过AtomicInteger 来分析对于基本类型的原子更新原理。

2020-10-12 09:40:52 560

原创 原子更新与Unsafe操作

文章系列目录 燕归来兮 https://www.zhoutao123.com/page/book/11当一个程序需要更新一个变量的时候,如果多个线程同时更新此变量,那么最终的结果可能无法得到预期的结果。比如 多个线程一起自增一个变量,因为线程之间存在本地缓存,那么更新的时候就会出现与预期不一致的结果。Atomic 系列通常我们需要使用Synchronized关键字或者Lock来避免临界区的资源被多个线程同时更新,这样的话可以防止出现上面的情况。但从JDK1.5 开始,JUC 提供了Atomic系列.

2020-10-12 09:38:32 196

原创 Frok/Join示例与原理

文章系列目录 燕归来兮 https://www.zhoutao123.com/page/book/111、Fork 与 JoinFork/Join 框架是 Java7 提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过 Fork 和 Join 这两个单词来理解下 Fork/Join 框架,Fork 就是把一个大任务切分为若干子任务并行的执行,Join 就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算 1+.

2020-10-12 09:35:00 251

原创 Condition 的使用范式以及原理

Condition 的使用范式以及原理文章系列目录 燕归来兮 https://www.zhoutao123.com/page/book/11在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实现等待/通知模式。Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者在使用方式以及功能特性上还是有差别的。1、Condition 的构建首

2020-10-12 09:32:52 603

原创 可重入锁 ReentrantLock 使用与实现原理

原文链接 https://www.zhoutao123.com/page/book/java/category/qhg7g7更多文章欢迎访问 https://www.zhoutao123.com1、可重入锁与ReentrantLock可重入锁指的是该锁能够在支持在同一个线程下对资源的重复加锁。JDK 提供了ReentrantLock来实现可重入锁,众所周知,Synchronized 是支持可重入锁的,并且是隐式的支持,适用范式如下// 伪代码synchronized(this){ ..

2020-07-15 10:31:54 215

原创 SpringBean 的初始化方法

原文链接 https://www.yuque.com/zhoutao123/springboot/itg4ef/markdown更多文章欢迎访问 https://www.zhoutao123.comBean的初始化和销毁方法初始化和销毁方法,单实例的Bean会在容器创建的时候被自动调用。但是需要注意的时候,如果是多实例的配置Bean,则会在获取该实例的时候被调用。InitMethod & destoryMethod在注入Bean的时候,可以指定Bean的 init 和..

2020-07-12 20:12:05 442

原创 AbstractQueueSynchronizer 独占式超时获取同步状态

原文链接 https://www.zhoutao123.com/page/book/java/category/ui8wdw更多文章欢迎访问 https://www.zhoutao123.com通过调用同步器的 public final boolean tryAcquireNanos(int arg, long nanosTimeout) 放,可以实现超时获取同步状态的编程范式模型,即在指定时间内获取到同步状态,超过一定时间返回false,获取同步状态成功则返回true,这是在JDK1.5..

2020-07-12 18:18:49 148

原创 AbstractQueueSynchronizer 共享式同步状态获取与释放原理

原文链接 https://www.zhoutao123.com/page/book/java/category/bxc17x更多文章欢迎访问 https://www.zhoutao123.com共享式获取同步状态和独占式获取同步状态主要的区别就是能够在同一时刻有多个线程获取到同步状态。以常见的文件读写实例说明,如果一个线程正在进行写操作,那么这一时刻其他线程的读操作均被阻塞;反之如果一个线程正在进行读操作,其他线程的操作均能正常获取到状态,但是写操作将被阻塞。这个例子中读操作就是共享式访问..

2020-07-12 18:17:09 126

原创 AbstractQueueSynchronizer 独占式同步状态的获取与释放原理

原文链接 https://www.zhoutao123.com/page/book/java/category/rcuy1l更多文章欢迎访问 https://www.zhoutao123.com上文中(Lock 与 队列同步器 AbstractQueueSynchronizer) 详细的描述了同步器的模式,自定义同步器的方式以及其底层实现-同步队列,本文将着重讲解独占式同步状态的获取与释放的原理。1、同步状态的获取1.1 从 acquire 方法说起上文中定义的Metux锁中loc..

2020-07-12 18:14:53 106

原创 Lock 与 队列同步器 AbstractQueueSynchronizer

原文链接 https://www.zhoutao123.com/page/book/java/category/geqior更多文章欢迎访问 https://www.zhoutao123.com1、Lock 接口的范式以及Synchronized的区别Lock 接口是Java SE 5.0 提供的接口,用于描述定义Java中的锁。一个锁能够防止多个线程同时访问共享的资源(一些特殊的锁除外,比如读写锁)。在Lock接口出现之前,Java程序一般使用Synchronized关键字实现同步操作..

2020-07-12 18:13:04 102

原创 多线程的应用-简单实现数据库连接池

原文链接 https://www.zhoutao123.com/page/book/java/category/auraqr更多文章欢迎访问 https://www.zhoutao123.com一些没有经常使用多线程开发的开发者而言,下面的代码可能有点不太容易读懂,主要还是因为不太熟悉这种编程模型,相信各位读者仔细分析代码后,结合代码中注释慢慢分析,如果有不同的地方,欢迎留言。坚持下来,你就会看到不一样的结果!本文章的重点不在于数据库的使用以及数据库连接的创建,本文着重于使用等待-超..

2020-07-12 18:10:41 435

原创 多线程的应用-异步任务线程池的简单实现

原文链接 https://www.zhoutao123.com/page/book/java/category/ggccu5更多文章欢迎访问 https://www.zhoutao123.com对于服务端的应用而言,经常会出现比如定时任务,或者任务的异步执行,熟悉Java开发的开发者,经常会使用Executors类,其提供了4种不同的线程池: newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool, newSingle..

2020-07-12 18:09:32 159

原创 线程之间的通讯机制详解

原文链接 https://www.zhoutao123.com/page/book/java/category/rdz3p6更多文章欢迎访问 https://www.zhoutao123.com各个线程之间相互的独立工作,每个线程都有自己的操作栈以及变量等信息。就像一个团队一样,如果每个人都只做自己的工作,缺少团队成员之间的相互交流,我想这种模式的工作,其价值也是很低的。对于对多线程而言,情况也是类似的,他们同属于某个进程,它们之间应该相互通讯,相互协同,已达到更好的效率实现更复杂的业务..

2020-07-12 18:08:09 281

原创 【并发编程】线程的启动与终止使用示例

原文链接 https://www.zhoutao123.com/page/book/java/category/xc8ki9更多文章欢迎访问 https://www.zhoutao123.com1、线程的创建在文章 线程的创建 & 线程优先级 文章中,我们已经了解了线程的创建过程,在运行线程之前,首先需要构建一个线程对象,线程对象需要一些线程的属性: 所属线程组,线程优先级,以及是否是守护线程等等。在创建线程对象完成之后,调用start() 方法就可以启动这个线程。其语句为: ..

2020-07-12 18:06:01 286

原创 线程状态以及守护线程

原文链接 https://www.zhoutao123.com/page/book/java/category/ru8i46更多文章欢迎访问 https://www.zhoutao123.com1、线程状态说明Java 的线程在运行阶段会有不同的状态,在Java代码中表现为一个枚举类 Thread.State 其定义如下:public enum State { // 尚未启动的线程状态,一般是创建好的线程尚未调用start() 方法局处于NEW状态 NEW, /..

2020-07-12 18:03:49 231

原创 【并发编程】线程创建 & 线程优先级

原文链接 https://www.zhoutao123.com/page/book/java/category/qpg9q1更多文章欢迎访问 https://www.zhoutao123.comJava天然支持多线程,在 java.lang 包实现了一些对多线程支持的类,Thread 以及 Runnable接口,Thread继承了Runnable接口。1、创建线程可以通过继承Thread或者继承Runable来实现多线程,使用start() 方法来启动线程,比如下面的代码// ..

2020-07-12 18:02:16 260

3D8光立方取模软件【上位机】

用于设计光立方的时候提供强大的界面,支持8*8*8的光立方 可通过串口直接调试,很是方便!

2015-07-29

提取QQ截图

一款小软件,提取自QQ,可以很方便的进行截图,方便使用!

2015-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除