自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【redis】redis简介及基本数据结构的操作

简介Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。linux安装redis:https://blog.csdn.net/wangyunzhao007/article/details/105163473数据结构字符串String字典Hash列表List集合Set有序集合SortedSet...

2020-05-31 19:32:02 291

原创 【并发编程】CountDownLatch与CyclicBarrier

CountDownLatch简介CountDownLatch,意思是倒数门闩。它的作用是多个线程做汇聚。主线程开启了 A、B、C 三个线程做不同的事情,但是主线程需要等待 A、B、C 三个线程全部完成后才能继续后面的步骤。此时就需要 CountDownLatch 出马了。CountDownLatch 会阻塞主线程,直到计数走到 0,门闩才会打开,主线程继续执行。而计数递减是每个线程自己操作 CountDownLatch 对象实现的。这种场景很常见:篮球比赛中,作为控球后卫,如果没有快攻机会,..

2020-05-23 19:55:29 210

原创 【并发编程】线程池--Executor框架

简介我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Executor的实现还提供了对生命周期的支持,以及统计信息收集,应用程序管理机制和性能监视等机

2020-05-21 20:56:41 124

原创 【并发编程】volatile简单使用

Atomic 以更为轻量的方式实现原子性。。本次我们学习volatile 关键字,则是用来解决可见性、有序性问题。简介在 JDK1.2 之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而在当前的 Java 内存模型下,线程可以把变量保存本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,就需要把变量声明为volat.

2020-05-21 20:56:26 133

原创 【并发编程】Atomic与CAS

Atomic 相关类在 java.util.concurrent.atomic 包中。针对不同的原生类型及引用类型,有 AtomicInteger、AtomicLong、AtomicBoolean、AtomicReference 等。另外还有数组对应类型 AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray。由于 Atomic 提供的功能类似,就不一个个过了。我们以 AtomicInteger 为例,看看 Atomic 类型变量所能提供的功能。..

2020-05-21 20:56:03 675

原创 【并发编程】JAVA内存模型

JAVA内存模型即JMM(Java Memory Model),有些人会和Java内存结构混淆。虽然两者名字很接近,但描述的为不同内容。Java内存结构描述的是JVM对内存的逻辑划分,我们在学习垃圾回收和JVM优化的时候会关心JVM内存结构。而本节所讲的JMM,实际上是一种规范。它描述了Java程序的运行行为,包括多线程操作对共享内存读取时,所能读取到的值应该遵守的规则。...

2020-05-21 20:55:30 121

原创 【并发编程】并发编程的三大特性

并发编程的书籍都会讲到并发编程的三大特性,这是并发编程中所有问题的根源,我们只有深刻理解了这三大特性,才不会编写出漏洞百出的并发程序。基本概念1、原子性,所有操作要么全部成功,要么全部失败。2、可见性,一个线程对变量进行了修改,另外一个线程能够立刻读取到此变量的最新值。3、有序性,代码在运行期间保证按照编写的顺序。为什么会有并发编程特性?线程切换导致了原子性问题对于变量a来说,我们对其执行以下代码a++;此时需要分三步执行:(1)读取a的值(2)将a的值加1

2020-05-21 20:55:02 1108

原创 【并发编程】线程等待、通知(wait/notify)

了解了在 Java 中如何启动一个线程,并且学习了 Thread 类的 API 以及线程的状态,接下来我们学习一下线程之间的等待和通知,也就是wait/notify。wait/notify 概念当前线程启动后,调用对象的wait()方法,当前线程释放对象锁,从运行态进入阻塞态,然后进入等待队列。依靠notify()/notifyAll()唤醒或者wait(long timeout)timeout时间到自动唤醒,再继续进入运行态,继续执行。还有notify()唤醒在此对象监视器上等待的单个线程,选

2020-05-21 20:54:41 282

原创 【并发编程】线程锁--Synchronized、ReentrantLock(可重入锁)

在说锁之前,我们要明白为什么要加锁,不加锁会怎样?在并发编程中,很容易出现线程安全问题,接下来我们看个很经典的例子--银行取钱,来看一下有关线程安全的问题。取钱的流程可以分为一下几个步骤:1.用户输入账户,密码,系统判断用户的账户,密码是否正确。 2.用户输入取款金额 3.系统判断账户余额是否大于取款金额 4.如果余额大于取款金额,取款成功;小于取款金额,取款失败。假设现在有一账户,内有1000元,两人同时取钱,看下面用代码模拟的情况。public class Account {

2020-05-21 20:54:17 211

原创 【SpringCloud】配置中心简介及其搭建

Spring Cloud是现在流行的分布式框架,提供可很多组件,比如我们熟悉的eureka,zuul,ribbon等组件。当然还有配置中心,他提供了配置文件的统一管理,可以很快速的切换不同的环境。说的通俗一点,就是可以做到快速切换,灵活配置我们springboot中的yml、properties等配置文件。首先介绍一下我们搭建需要准备哪些东西1.在git上创建配置中心文件在git上创建好我们所需要的的配置文件,将准备好的配置文件放到里边,各种配置好写好。这个名字不可以随便命名,我们要按.

2020-05-17 19:34:02 469

原创 【并发编程】线程中的Sleep、Yield、Join等api方法方法线程状态转换

在上两篇中我们学习线程的概念和如何创建线程,在本篇中我们学习一些线程的方法和线程的状态。方法Sleep:线程睡眠线程休眠指的是让线程暂缓执行以一下,等到了预计时间之后再恢复执行参数是毫秒。当线程启动后,再调用sleep方法,可以让线程进入特定时间的阻塞状态,当时间过去后,在进入运行态。示例代码如下:public class T03_Sleep { public sta...

2020-05-05 20:05:16 312 1

原创 【并发编程】创建线程的四种方式

上一篇我们初步认识了线程,现在我们来讲一下,创建线程的三种方式1.继承Thread类通过继承thread类,然后重写run方法(run方法中是线程真正执行的代码,runable也是如此)即可。当子类被实例化后,调用start方法即可启动线程。(不能调用run方法,直接调用run方法,和方法调用没有区别,不是线程。)这种继承thread创建线程的方式,线程之间无法共享实例变量,因为每次都...

2020-05-05 16:57:21 202

原创 【并发编程】对线程的初步认识

简介线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。通俗点说:一个程序被启动执行就是一个进程。一个进程的最小执行单元就是线程。系统中的进程线程模型是这样的:进程从操作系统获得基本的内存空间,所有的线程共享着进程的内存地址空间。当...

2020-05-05 15:47:16 139

springcloudalibaba-code.zip

本文件中是有关springCloudAlibaba的框架学习的代码,包含了nacos的使用,openfeign的使用(有客户端和服务端的搭建),gateway的搭建。以及对服务的的降级和限流,还有gateway对sentinel的整合,达到对网关的限流。

2020-06-25

nacos-code.zip

本资源是nacos的入门测试,讲述了nacos的如何添加配置文件,并且如何使用配置文件。同时我们实现了nacos的服务注册和发现,除此之外,我们还实现了负载均衡,有手动实现的负载均衡,还有使用ribbon的负载均衡等等。

2020-06-21

空空如也

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

TA关注的人

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