首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
并发
订阅
xxm59448
更多收藏集
微信扫码分享
微信
新浪微博
QQ
5篇文章 · 0订阅
Java多线程之Callable,Future,FutureTask
线程可以通过实现Runnable接口,或者继承Thread实现,但是这两种方式在任务执行完成之后无法获取返回结果,于是就有了Callable接口,Future接口与FutureTask类配和来取得返回的结果。 Callable接口声明了一个方法call(),同时这个方法返回值为…
为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API
作为Java程序员,我想很多人都知道日志对于一个程序的重要性,尤其是Web应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。 所以,日志在Java Web应用中至关重要,但是,很多人却以为日志输出只是一件简单的事情,所以会经常忽略和日志相关的问题。在接下来的几篇文章…
并发优化 - 降低锁颗粒
减少锁的持有时间。 例如对一个方法加锁不如对其中的同步代码行加锁。 读写锁。 可只对锁操作加锁,读不加锁。这样读、读之间不互斥, 读、写和写、读互斥,可使用J.U.C中的ReadWriteLock。 减少锁颗粒。 如ConcurrentHashMap中对segment加锁,而不…
如何写出无法维护的代码
容易输入的名字。比如:Fred,asdf 单字母的变量名。比如:a,b,c, x,y,z(如果不够用,可以考虑a1,a2,a3,a4,….) 有创意地拼写错误。比如:SetPintleOpening, SetPintalClosing。这样可以让人很难搜索代码。 抽象。比如:P…
马蹄疾 | 2018(农历年)封山之作,和我一起嚼烂Git(两万字长文)
我刚开始接触git的时候,完全搞不清楚为什么这个操作要用这个命令,而那个操作要用那个命令。 因为git不是一套注重用户体验的工具,git有自己的哲学。你首先要理解它的哲学,才能真正理解它是如何运作的。 我也是看了前辈写的文章才在某一刻醍醐灌顶。 git有多强大,想必大家都有所耳…