- 博客(9)
- 收藏
- 关注
原创 go语言学习-控制协程总数量
package mainimport ( "fmt" "sync" "time")var MAX = 5var limitChan = make(chan bool, MAX)var wg = sync.WaitGroup{}//模拟线程func thread(no int) { //主线程等待+1 wg.Add(1) fmt.Println("this thread no is ", no) //等待3秒,模拟线程执行 time.Sleep(3*time.Sec.
2021-04-20 20:26:06 1156
原创 源码分析与实战——Java动态代理的两种方式
SpringAOP可以说是面试必问的内容之一,这是作为JAVA高级开发者必须掌握的技能之一。今天我结合实例、源码分析一下这一套机制。默认大家对静态代理和动态代理已经有了基础的理解。1、动态代理静态代理和动态代理的差别在此不再多说,网上到处是。我主要结合源码想说说动态代理,它是SpringAop的基础。1.1 JDK自带的代理机制1.1.1 示例接口定义:package TestPro...
2021-03-11 19:06:32 293
原创 IT小公司管理的几点思考
我最近好几年一直在小公司待着,基本做的都是技术架构+管理的工作。最近我也进行了一下总结,所以决定也写一篇博文,把我所遇到的一些问题和困惑都写出来,和大家讨论讨论。首先我认为:小公司管理很困难,而所有的管理困境的根源都在于钱!...
2020-02-17 17:48:34 6195 8
原创 源码分析与实战——深入理解ScheduledThreadPool线程池延时执行机制(二)
1、前言在上篇博文中《源码分析与实战——深入理解ScheduledThreadPool线程池延时执行机制(一)》中,其实我们留下几个问题:ScheduledThreadPool是如何保证任务delay到时准时执行的?任务执行顺序会不会出问题?毕竟按照siftUp()方法的源代码,是无法保证队列是按time有序的。我们今天来探讨一下。2、复习上篇博文中我们学习了ScheduledThreadP...
2020-02-13 19:32:59 987
原创 IT小公司避坑及生存指南
毫无疑问,所有的人都愿意去大公司工作!大公司的优点自不用多说,规范、薪资、福利、稳定性等等都完爆小公司。但是大公司要不了那么多人!全国中小企业为城镇提供了75%的就业岗位,这意味着大部分人都得进入中小企业讨生活!我工作这17年来,大公司待过,中型公司也待过,几个人的小微创业公司也待过。我的简历其实并不好看,因为后期我基本都在小企业!非常悲催的是,这几家公司要么直接倒闭,要么发展非常不好。我觉得...
2020-02-11 17:05:21 8006 6
原创 源码分析与实战——深入理解ScheduledThreadPool线程池延时执行机制(一)
1、前言在上篇博客《源码分析与实战——深入理解Java的4种线程池》中,我们详细分析了一下Java四种线程池的基本源码,编写代码进行了尝试。其中single单线程池、fiexed定长线程池、cached缓存线程池都比较简单,scheduled线程池则复杂一些。今天我们结合延迟队列来对它进行源码分析,详细讲解一下延时执行线程池的工作原理。2、线程池定义首先,我们还是再来看一下最简单的一个使用示...
2020-02-10 23:53:28 1333
原创 源码分析与实战——彻底理解Thread和Runnable使用
众所周知,在Java高级开发里面,多线程会经常被使用。通常有2种方式去启动一个新线程:定义一个Thread的子类,在子类中重写run方法。 定义一个类实现Runnable接口,重写run方法;然后通过新建Thread线程去执行。 前者是完全独立的线程,可以直接运行;后者不可以直接运行,必须通过Thread线程去运行。当需要多个线程去完成同一个任务时,一般建议使用第二种方...
2020-02-07 14:59:16 1073
原创 @Value取值为NULL的解决方案
@Value取值为NULL的解决方案在spring mvc架构中,如果希望在程序中直接使用properties中定义的配置值,通常使用一下方式来获取: @Value("${tag}") private String tagValue;但是取值时,有时这个tagvalue为NULL,可能原因有:使用static或final修饰了tagValue,如下: private stat
2017-02-09 13:37:43 32824 9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人