首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
MomokaJunko
掘友等级
摸鱼怪
加油吧
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
18
文章 18
沸点 0
赞
18
返回
|
搜索文章
最新
热门
ThreadPool线程池api及工作原理简析
值得一提的是,这里的队列用到了阻塞队列BlockingQueue,对于ThreadPool,我们可以理解为已经为我们创建了一堆线程,然后再让这些线程去做我们指定的事情。 第一个是固定容量的线程池,这个是固定了大小的线程池,每次都是从这个线程池中取的线程。 在上面的代码中,我们可…
JUC之ReadWriteLock(读写锁)
实现类ReentrantLock在并发情况下只允许单个线程执行受保护的代码,而在大部分应用中都是读多写少,所以,如果使用ReentrantLock实现这种对共享数据的并发访问控制,将严重影响整体的性能。 写入锁(WriteLock)可以实现每次只允许一个写操作。 但是,在它的实…
JUC的三个辅助类
countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。 CyclicBa…
JUC创建线程的第三种方式-Callable
可以看到Callable接口存在泛型,并且方法有返回值,这是对原来老技术的增强,因为存在了返回值,所以提高了线程的细粒度。 如果有两个线程使用同一个实例,只会执行一次,因为一个futureTask,不管几个线程调用,调用的都是同一个futureTask对象。同一个FutureT…
JUC之集合不安全
ArrayList底层是Object类型的数组,初始容量是10(jdk7之前,jdk8之后是空引用,到add之后会变成10,类似于懒加载的机制),其扩容的方式是每次扩容为之前的一半,比如10会扩容成15,15扩容成22,扩容用到的方法时Arrays的copyof方法,OK,接下…
小记:JUC的8锁理论
结果:虽然先执行的sendEmail,是因为中间 Thread.sleep(100);,但其实是不一定的,看cpu的调度,被 synchronized 修饰的方式,锁的对象是方法的调用者,因为这两个方法锁的是同一个对象,所以先调用的先执行。 先打印的phone2的sendMsg…
JAVA多线程(JUC)基础学习
synchronized 不需要用户去手动释放锁,synchronized 代码执行完后系统会自动让线程释放对锁的占用。 ReentrantLock 则需要用户去手动释放锁,如果没有手动释放锁,就可能导致死锁现象。一般通过lock()和unlock()方法配合try/final…
Spring Security用户授权管理
之前的一些入门笔记SpringSecurity认证的三种方式及简单的授权SpringSecurity基础学习笔记用户授权管理自定义访问控制在之前也提到,需要自定义访问请求的权限控制,则需要在配置类中添
Spring Security 认证的三种方式及简单的授权
在SecurityConfig配置类内重写configue(HttpSecurity http)方法,如果用户没有访问某页面的权限,会出现403页面错误,该错误页面提示可以根据自己的项目进行修改。
Spring Security 基础学习笔记
当什么也没有配置的时候,账号和密码是由 Spring Security 定义生成的。而在实际项目中账号和密码都是从数据库中查询出来的。 所以我们要通过自定义逻辑控制认证逻辑。如果需要自定义逻辑的话,则需要实现UserDetailsService接口 boolean matche…
下一页
个人成就
文章被点赞
56
文章被阅读
43,630
掘力值
1,048
关注了
14
关注者
17
收藏集
0
关注标签
8
加入于
2019-09-18