Liam's Blog

Hi there, 2023!

创建线程是一个重量级操作,因为需要调用操作系统内核的API,所以最好不要频繁的创建和销毁线程,为了能够复用创建的线程,常用的办法的就是创建线程池。

Read more »

Semaphore信号量模型,是一种通过维护计数器数值来控制并发数量的模型,Lock实现的互斥锁只允许一个线程访问临界区,而Semaphore允许有限多个线程访问临界区。

什么情况需要允许多个线程同时访问?最常见的需求就是池化资源,连接池、线程池、对象池等等。

Read more »

synchronized作为内置锁,使用简单,不易出错,然鹅确有相当的局限性,例如,无法从等待获取锁的阻塞中中断,无法设置获取锁的超时。
所以JUC提供了另一种更灵活的加锁方式,即Lock。

Read more »

Maven的所有实际操作都是由插件完成的,如果没有插件,Maven什么都不会干。
(即时你没有在POM中配置<plugin>元素,Super POM中也已经帮你引入了若干核心插件)

那么问题来了,项目构建过程中,Maven是怎么知道应该在什么时候调用哪个插件的呢?

插件的调用时机,跟’生命周期’和’插件目标’有很大关系。

Read more »

简介

《黑客与画家》是硅谷创业之父Paul Graham的文集,这里的黑客指的是优秀的软件工程师,作者将黑客与画家作比较,认为与黑客最接近的职业是画家,这便是这本书书名的由来了。
Paul Graham在1995年创办了Viaweb,帮助个人用户方便的开设网上商店,1998年以5千万美元的价格卖给Yahoo公司。
2005年他创建了风投公司YC,被称为全世界最牛的创业孵化器,YC帮助了大量的创业公司(到2018年投资了1450家公司),比较成功的案例有:Airbnb,Stripe,Dropbox,Docker,GitLab等等。

这本书中包含了作者对黑客精神,创业,互联网,社会,编程语言的诸多观点,读完让人感觉受益匪浅,甚至会有创业的冲动,哈哈。

以下是对这本书内容的一些摘抄。

Read more »

简介

从 spark 2.0 开始,我们可以使用DataFrameReader 和 DataFrameWriter来读写MySQL。

Read more »
0%