上一页 1 ··· 6 7 8 9 10 11 下一页
摘要: 1. AQS共享模式 前面已经说过了AQS的原理及独享模式的源码分析,今天就来学习共享模式下的AQS的几个接口的源码。 首先还是从顶级接口acquireShared()方法入手: 与acquire()方法一样,tryAcquireShared()为自己是实现的对资源获取的接口,AQS对返回值的语义已 阅读全文
posted @ 2018-09-29 23:13 Eternally_dream 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 1. ThreadLocal的理解 ThreadLocal,顾名思义,就是线程的本地变量,ThreadLocal会为每个线程创建一个本地变量副本,使得使用ThreadLocal管理的变量在多线程的环境下,每个线程都是访问的是自己内部的副本变量,将全局变量局部化,跟局部变量一样的使用,从而避免了一些线 阅读全文
posted @ 2018-09-29 16:47 Eternally_dream 阅读(234) 评论(0) 推荐(0) 编辑
摘要: (一)线程之间的通信 前面所有的线程都是独立运行的,几个线程之间只会存在竞争锁和资源的管理,但是在多线程的环境下可能会需要多个线程同时协作完成,当某个线程执行一定操作之后,需要其他线程的帮助才能执行完成,此时该线程该如何去通知其他线程执行任务,当其他线程执行时该线程又处于什么状态,当其他线程执行完成 阅读全文
posted @ 2018-09-28 23:05 Eternally_dream 阅读(330) 评论(0) 推荐(0) 编辑
摘要: (一)公平锁 1、什么是公平锁? 公平锁指的是在某个线程释放锁之后,等待的线程获取锁的策略是以请求获取锁的时间为标准的,即使先请求获取锁的线程先拿到锁。 2、在java中的实现? 在java的并发包中提供了ReentrantLock提供了重入锁并且也提供了公平锁(FairSync)和非公平锁(Non 阅读全文
posted @ 2018-09-27 23:35 Eternally_dream 阅读(665) 评论(0) 推荐(0) 编辑
摘要: (一)什么是AQS? 阅读java文档可以知道,AbstractQueuedSynchronizer是实现依赖于先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架,它是一个依靠单个原子 int 值来表示状态的大多数同步器的一个基础类。在jdk中他的实现的类有Sem 阅读全文
posted @ 2018-09-27 16:15 Eternally_dream 阅读(251) 评论(0) 推荐(0) 编辑
摘要: (1)jdk中原子类的使用: jdk5中提供了很多原子类,它会使变量的操作变成原子性的。 原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程干扰。 jdk中的rt.jar中提供给了很多的原子性操作类。它们是位于java.util.concu 阅读全文
posted @ 2018-09-21 22:51 Eternally_dream 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 再说synchronized关键字之前,我们首先先小小的了解一个概念-内置锁。 什么是内置锁? 在java中,每个java对象都可以用作synchronized关键字的锁,这些锁就被称为内置锁,每个对象的锁的信息都存在对象头中 所以synchronized关键字在使用过程中之所以能够保证线程的安全, 阅读全文
posted @ 2018-09-20 22:21 Eternally_dream 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 说到多线程带来的风险,首先要了解一个概念-临界区。 什么是临界区? 临界区是用来表示一种公共的资源(共享数据),它可以被多个线程使用,但是在每次只能有一个线程能够使用它,当临界区资源正在被一个线程使用时,其他的线程就只能等待当前线程执行完之后才能使用该临界区资源。 比如一台饮水机,比如办公室办公室里 阅读全文
posted @ 2018-09-19 23:21 Eternally_dream 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 多线程是指机器支持在同一时间执行多个线程,能够提高cpu的利用率 ,提高程序的执行效率。 (1)继承Thread类 多线程可以通过继承Thread类并重新Thread的run方法来启动多线程。然后通过Thread的start方法来启动线程。上代码: 这里也顺便用了线程的中断,当希望一个线程不再执行时 阅读全文
posted @ 2018-09-18 23:24 Eternally_dream 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 今天介绍三种配置文件手动取值的方式: springboot配置文件信息保存在application.properties中,默认可以spring.开头的进行spring进行一些常用参数的配置,但是很多时候我们需要手动配置一些配置,这就需要我们自己手动取值了, application.properti 阅读全文
posted @ 2017-12-17 00:38 Eternally_dream 阅读(6256) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 下一页