首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
cafebabe
掘友等级
好的代码像首诗,烂的代码像坨屎
获得徽章 6
动态
文章
专栏
沸点
课程
收藏集
关注
作品
赞
11
文章 9
沸点 2
赞
11
返回
|
搜索文章
最新
热门
CountDownLatch、Semaphore、CyclicBarrier、Condition源码分析
它是一个同步辅助类,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。一个倒数计算的概念。 初始化给定一定的整数参数值,然后通过countDown()来实现倒数功能,在这个整数倒数到 0 之前,调用了 await() 方法的程序都必须要等待,当到达0后, 释放所有等待…
微服务核心重新认识Spring Boot,掌握核心特性及设计思想
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated…
JAVA并发编程关于锁的那些事,ReentantLock的底层设计深入浅出
java.util.concurrent是在并发编程中比较常用的工具类,里面包含很多用来在并发场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。 Lock最为重要的特性就是解决并发程序的安全性问题。 在JUC大部分组件都使用了Lock,所以了解和使用Lock…
JAVA并发编程阶段总结篇,解决死锁问题以及ThreadLocal原理分析
首先来看下死锁的概念吧:一组相互竞争的线程因为相互等待,造成“永久”阻塞的现象,我们称之为死锁;那么有死锁必然就有活锁了,什么是活锁呢?即任务或者执行者都没有被阻塞,由于某些条件未被满足,一直处于重试->尝试执行->执行失败的过程被成为活锁。 循环等待,线程T1等待线程T2占有…
JAVA并发编程递进篇,探索线程安全性volatile关键字如何保证可见性
很显然运行main()方法后,循环并没有结束,程序一直处于运行状态。 使用print打印i的值,发现循环就被终止了。这是为什么呢?我们不妨来看下println()方法的源码吧。 底层方法使用synchronized关键字,这个同步会防止循环期间对变量stop的值缓存。 从IO角…
JAVA并发编程入门篇,思考同步锁Synchronized背后的实现哲学
多线程在概念上类似抢占式多任务处理,线程的合理使用能够提升程序的处理能力,但是使用的同时也带来了弊端,对于共享变量访问就会产生安全性的问题。下面来看一个多线程访问共享变量的例子: 变量count的运行结果始终是小于等于1000的随机数,因为线程的可见性和原子性。 如何保证线程并…
JAVA并发编程揭开篇章,并发编程基本认识,了解多线程意义和使用
多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multit…
手把手教你阅读mybatis核心源码,掌握底层工作原理与设计思想
Mybatis目前作为互联网公司Java体系开源ORM框架的首选,它有着天然的优势,很多同学只关注其公司业务CRUD程序的编写,忽略了其源码阅读的重要性。下面来看一段使用Mybatis API写的代码示例: 接下来按照示例代码的步骤一步一步地来分析代码的运行背后的秘密,揭开my…
面试官口中的Mybatis,工作流程、架构分层与模块划分以及缓存机制
在我们平时的业务开发中,经常会使用“半自动化”的ORM框架Mybatis解决程序对数据库操作问题。MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来。MyBatis是在Apache许可证2.0下分发的自由软件,是iBATIS 3…
对于GoF 23种设计模式的学习,我们需要掌握的是“道”,而不只是“术”
设计模式是一门艺术,因为它们来源于生活,不要为了套用设计模式而去使用设计模式。我们在编写程序的时候用好设计模式可以防范于未然,它们可以很好地提供一种解决问题的方案。从古至今,我们在遇到问题的时候,都会去寻求帮助,咨询懂的人,或者去图书馆查阅资料,或者在电脑前面搜索,等等方法。在…
下一页
个人成就
文章被点赞
46
文章被阅读
48,365
掘力值
1,313
关注了
17
关注者
29
收藏集
0
关注标签
26
加入于
2019-02-01