自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 线程的活跃性问题

前面我们了解了多线程带来的安全性问题,接下来我们来看下多线程带来的活跃性问题。一、活跃性问题线程是为任务而生的,理想情况下,我们希望线程能一直处于运行(Runnable)状态,但是会由于一些因素,如处理器资源有限导致的上下文切换、程序自身的错误和缺陷。这些由于资源稀缺或者程序自身问题导致线程无法一直处于 Runnable 状态运行下去,又或者因为线程处于 Runnable 状态但是其要执行的任务一直无法进展的现象就被称为线程活跃性问题或活性故障。我们常见的“死锁”就是一种典型的活跃性问题,除了“死锁”,

2020-11-15 21:33:43 941 1

原创 线程的安全性问题

Java 对线程的支持是一把双刃剑。多线程虽然拥有提高多核处理器能力、便于编程建模等优点,但也存在一些列风险,如安全性问题、活跃性问题、性能问题。本文将分析多线程带来的安全性问题。一、竞态条件1.什么是竞态多线程编程中经常遇到的一个问题就是对同样的输入,程序的输出有时候是正确的,有时候是错误的。这种一个计算结果的正确性与时间有关的现象就被称为竞态(Race Condition)。竞态往往伴...

2020-03-01 15:51:38 469

原创 Thead 类的常用方法

一、概览public static native Thread currentThread():返回对当前正在执行的线程对象的引用。public static native void yield():使当前线程主动放弃其对处理器的占用,可能会导致当前线程被暂停。public static native void sleep(long millis):使当前线程休眠指定的时间。public...

2020-01-21 02:08:57 931

原创 线程间通信 wait/notify

一、简介每个线程在运行的时候,仅仅只是孤立运行的话,带来的价值是非常小的,如果多个线程能够相互配合去完成工作,那么在多线程场景中会带来非常大的价值。如一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作。前者是生产者,后者是消费者。在 Java 语言中使用如下代码可以实现该功能。while (value != desire) { Thread.sleep(1000);...

2020-01-19 09:55:09 267

原创 线程的状态与属性

一、线程的状态线程的状态(生命周期)在 Thread 类中是一个枚举类,一共有六种状态,可以通过 Thread.getState() 方法获取当前线程的状态。每个线程同一时间只能处于一种状态,只可能有一次处于 NEW 状态和 TERMINATED 状态,此处的线程状态指的是在 JVM 中的线程状态。public enum State { NEW, RUNNABLE, ...

2020-01-17 15:48:56 314

原创 线程的启动与终止

一、线程的创建1.Oracle 官网描述There are two ways to create a new thread of execution.One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread. An ins...

2020-01-16 17:51:40 331

原创 并发编程的理论基石

一、进程和线程1.操作系统、进程、线程的关系操作系统是包含多个进程的容器,而每个进程又是容纳多个线程的容器。 2.Oracle 官方定义官方定义进程:使用 fork(2) 系统调用创建的UNIX 环境(例如文件描述符,用户 ID 等),它被设置为运行程序。线程:在进程上下文执行的一系列指令。3.什么是进程进程(Process)是程序的运行实例。进程是程序向操...

2020-01-15 21:17:06 129

原创 什么是注解?

一、概念Java 注解是在 JDK5 时引入的新特性,注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。注解类型定义指定了一种新的类型,一种特殊的接口类型。 在关键词 interface 前加 @ 符号也就是用 @interface 来区分注解的定义和普通的接口声明。目前大部分框架(如 Spring Boot 等)都通过使用注解简...

2019-12-16 23:30:18 351

原创 什么是泛型?

一、泛型的概念泛型是 Java SE5 出现的新特性,泛型的本质是类型参数化或参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。二、泛型的意义一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。Java 在引入泛型之前,表示可变对象,通常使用 Object 来实现,...

2019-12-13 04:06:13 3275

原创 LinkedList 源码分析

一、概述本文基于 JDK8LinkedList 底层通过双向集合的数据结构实现内存无需连续的空间保证元素查找只能是顺序的遍历查找针对增删操作具有更好的性能LinkedList 可以作为 List 使用,也可以作为队列和栈使用。支持从集合的头部,中间,尾部进行添加、删除等操作。LinkedList 的继承与实现的关系图如下所示。以下说明摘自 JDK 文档。Iterable ...

2019-12-09 17:59:35 184

原创 ArrayList 源码分析

一、概述本文基于 JDK8ArrayList 底层通过动态数组的数据结构实现内存需要连续的空间保证添加操作涉及到数组的动态扩容添加,删除都涉及到位置移动操作随机查找效率快(下标查找)ArrayList 的继承与实现的关系图如下所示。以下说明摘自 JDK 文档。Iterable 接口:提供迭代器访问能力,实现此接口允许对象通过 for-each 循环语句进行遍历。C...

2019-12-08 22:26:13 205

原创 什么是反射?

一、反射的定义本文基于 JDK8,Oracle官网对反射的解释是Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and construc...

2019-12-07 17:47:54 941

原创 深入理解计算机系统 第 6 章 存储器的层次结构

简单的计算机系统模型:CPU 执行指令,而存储器系统为 CPU 存放指令和数据。存储器是一个线性的字节数组,而 CPU 能够在一个常数时间内访问每个存储器的位置。存储器系统(memory system)是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU 寄存器:保存着最常用的数据。高速缓存:靠近 CPU 的小的、快速的高速缓存存储器(cache memory)作为一部分存储在相...

2019-10-21 12:58:14 662

原创 深入理解计算机系统 第 2 章 信息的表示和处理(一)

无符号(unsigned)编码基于传统的二进制表示法。补码(two’s-complement)编码是表示有符号整数的最常见的方法(正或负)。浮点数(floating-point)编码是表示实体的科学计数法的以 2 为基数的版本。一、信息存储内存中最小寻址单位为 1 个字节(8位),不直接访问内存中的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtual memory)...

2019-09-08 11:33:47 295

原创 深入理解计算机系统 第 1 章 计算机系统漫游

一、hello 程序1.编写程序 #include <stdio.h> int main() { printf("hello, world\n"); return 0; }源程序实际上就是一个由 0 和 1 组成的位(比特)序列,8个位为一组,称为字节。上述代码的 ASCII 文本如图 1 所示 ...

2019-09-02 17:46:56 182

最新黑马《十次方》项目-微服务模块教程

章 节 标题 完成功能 技术点 1 系统设计与工 程搭建 需求分析 表结构设计 前后端接口文档 环境搭 建 基础微服务 SpringBoot 、 SpringMVC 、SpringDataJPA 、 Postman 2 查询与缓存 基础微服务、招聘微服 务、活动微服务、问答 微服务、文章微服务 SpringDataRedis 、 SpringDataJPA 3 文档型数据库 MongoDB 吐槽微服务、文章评论 MongoDB 、 SpringDataMongoDB 4 分布式搜索引 擎 ElasticSearch 搜索微服务 Elasticsearch 、 SpringDataElasticsearch 5 消息中间件 RabbitMQ 用户微服务(注册) 短 信微服务 RabbitMQ 、 阿里云通信 6 密码加密与微 服务鉴权JWT 密码加密 微服务鉴权 BCrypt 、 JWT 7 SpringCloud 之初入江湖 交友微服务 微服务间调 用 Eureka、 Feign 8 SpringCloud 之一统天下 微服务熔断 微服务网 关 码云 配置管理中心 Hystrix、 Zuul 、 码云 、 Spring Cloud Config、 Spring Cloud Bus 9 微服务容器部 署与持续集成 微服务容器部署 版本控 制Git+Gogs 微服务持续 集成 Gogs Docker私有仓库 Jenkins 10 容器管理与弹 性扩容 容器管理,弹性扩容 Rancher容器部署管理 Grafana 实时监控

2018-11-20

聊天室项目

实现在同一个局域网下的多人聊天。利用java socket编写。

2017-12-29

空空如也

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

TA关注的人

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