自定义博客皮肤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)
  • 收藏
  • 关注

原创 并发编程(9)-并发安全

_____个人笔记_____((≡^⚲͜^≡))_____欢迎指正_____

2024-03-19 11:33:05 1379 1

原创 Spring核心-2装配Bean

Spring装配Bean

2023-11-28 20:55:54 382

原创 Spring核心-1基础

简介Spring是为了解决企业级应用开发的复杂性而创建的,Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合等方面从Spring中获益。为了降低Java开发的复杂性,Spring采取了以下4种关键策略:基于POJO的轻量级和最小侵入性编程;通过依赖注入和面向接口实现松耦合;基于切面和惯例进行声明式编程;通过切面和模板减少样板式代码;依赖注入DI依赖注入DI 由 Spring核心容器 模块的 bean 工厂提供。耦合的两面性:紧密耦合的代码难以测试、

2023-10-12 18:20:32 77

原创 并发编程(8)-线程池

Java 中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于T2,则可以采用线程池,以提高服务器性能。线程池技术正是关注如何缩短或调整T...

2020-06-18 11:56:01 444 1

原创 并发编程(7)-并发容器

Java中的常用位运算操作符 名称 说明 & 位与 1 & 1 = 1; 0 & 0 = 0; 1 & 0 = 0; | 位或 1 | 1 = 1; 0 | 0 = 0; 1 | 0 = 1; ^ 位异或 1 ^ 1 = 0; ...

2020-06-11 21:36:11 271

原创 并发编程(6)-AQS

队列同步器AbstractQueuedSynchronizer是用来构建锁或其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 AQS的主要使用方式是继承,子类通过继承AQS并实现它的抽象方法来管理同步状态。 在AQS里由一个int型的state来代表这个状态,在抽象方法的实现过程中免不了要对同步状态进行...

2020-04-10 15:28:42 123

原创 并发编程(5)-CLH与MCS队列锁

自旋锁 一般解决多线程共享资源逻辑一致性问题有两种方式: 互斥锁:发现资源被占用时,阻塞自己直到资源解除占用,然后再次尝试获取锁; 自旋锁:发现资源占用时,一直尝试获取锁,线程不会被挂起,即没有线程调度切换的消耗;SMP 对称多处理(Symmetrical Multi-Processing),是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共...

2020-04-07 23:13:42 230

原创 并发编程(4)-显示锁

Java是靠synchronized关键字实现锁功能的。synchronized关键字将会隐式地获取锁,但是它将锁的获取和释放固化了。也就是先获取再释放。下面介绍Lock的一些内容。Lock特性特性 描述 尝试非阻塞地获取 锁 当前线程尝试获取 锁,如果这一时刻锁没有被其它线程获取 ,则成功获取并持有锁 能被中断地获取锁 与synchronized不同,获取到锁的...

2020-04-03 23:21:10 105

原创 并发编程(3)-CAS原子操作

synchronized关键字是基于阻塞的锁机制,当一个线程拥有锁时,其它线程需要等待到该线程释放锁。如果等待的线程优先级很高;或者有大量线程竞争同一锁资源,CPU将会花费大量时间和资源处理这些竞争;甚至出现了死锁等对程序的执行影响都非常世大。CAS的基本思路 利用当前处理器基本都支持的CAS()指令,判断某个地址上的值和期望原值是否相等,如果相等,给其赋予新值,否则不做任何...

2020-04-01 22:59:39 130

原创 并发编程(2)-并发工具类

Fork-Join核心思想 分而治之:将一个大问题分割为相同的小问题,小问题之间无关联 快速排序、归并排序、二分查询都属于分而治之的思想Fork-Join的工作密取 将一个大问题分割为相同的小问题交给多个线程执行,当一个线程先处理完任务之后,自动到其它线程的Task池中取出任务继续执行。 ForkJoinPool 中维护着多个线程(一般为CPU 核数...

2020-04-01 14:30:58 147

原创 并发编程(1)-基础

并行和并发并行:同时执行多个任务。比如两核的CPU并行任务量是两个。并发:单位时间可以执行的任务数。假如CPU为单核,单位时间为1秒,并发就是指这1秒内CPU执行的任务数。单核CPU在同一时刻时能执行一个线程。那在1秒内可能会交替执行100个线程。即并发量是100。高并发的好处1、充分利用CPU的资源2、提高响应时间3、可以使代码模块化、异步化、简单化多线程注意事项...

2020-03-31 23:59:51 783

原创 Docker实战

为什么使用docker在Java应用程序进入到微服务阶段后,经常需要大量部署应用[jar、war]。docker解决了部署应用的弹性伸缩问题。传统应用部署发版,需要先把jdk、tomcat等环境配置好,然后再把应用的jar或war发布到服务器上。而docker是把【应用的jar或war包及环境配置】做为一个整体包进行部署。Java:一次编译,处处运行。docker:一次打包...

2020-03-31 19:23:19 3845

原创 惠普暗影精灵VMware安装CentOS7显示[此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态]

进入BIOS页面开启CPU虚拟化处理技术电脑开机时按【ESC】键进入系统启动菜单、然后按F10进入BIOS页面,开始【处理器虚拟化技术】

2020-03-25 16:28:13 4136

原创 VMware配置CentOS-7连网

1、首先查看VMware网络配置【编辑】菜单->【虚拟网络编辑器】 记下子网IP、子网掩码、网关IP2、配置Linux虚拟机3、启动Linux系统并登陆查看网络配置文件是哪个【ip addr】ip addr4、搜索配置文件位置并编辑它#搜索 etc 目录下文件名称包含ens33的文件find /etc -name *ens33*...

2020-03-25 15:34:00 113

原创 Java数据结构

HashSet保证元素唯一性示例:/*在hashCode()方法中返回固定值,就是每当add()元素时,都会先在hashCode()返回相同的标记号比如10,这样程序就会去调用equals()方法匹配属性是否相同。如果相同,则不做add()操作。如果不同,则将元素挂到标记号10下面,即所有add()的元素都会挂到10下面,就是桶状结构。*/HashSet<User> hashSet =...

2018-05-14 17:58:23 98

空空如也

空空如也

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

TA关注的人

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