- 博客(4)
- 收藏
- 关注
原创 java高并发之——synchronized和重入锁(ReentrantLock)
一、重入锁的定义:为什么会叫重入锁,顾名思义,表示这个锁可以返回被添加,就是一个线程可以多次获得一把锁,只要在最后的时候做相同次数的锁释放即可。Lock lock = new ReentrantLock();lock.lock();lock.lock();try { //业务代码} finally { lock.unlock(); lock.unlock();...
2019-04-24 23:43:02 594
原创 常见的排序算法
1.冒泡排序定义:比较相邻的元素。如果第一个比第二个大,就交换他们两个;走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。例如:对一个数组进行从小到达的排序,代码实现如下:ublic class ChooseSort { public static void main(String[] args) { int[] array ...
2019-04-18 23:23:47 91
原创 java高并发之 —— 解决编发编程中的原子性、可见性和有序性
一、如果保证程序的原子性——锁在程序开发中,我们如何才能保证一个程序的原子性是非常的重要的,保证程序原子性性,可以有效的避免在多线程过程中,出现的诡异bug。那在java程序中如果保证程序的原子性呢?也就是保证当前方法在同一时刻只能有一个线程对其进行操作,多线程在执行的时候,进行同步操作。java自带的隐式加锁方法就是使用synchronized关键字。synchronized关键字可以用...
2019-04-12 00:39:53 241
原创 java高并发之 —— 编发编程的Bug源头
我们知道并发编程比串行程序复杂的多,因为在并发程序下数据访问要保持一致性和安全性,这里就要提出一个临界区的概念!什么是临界区呢?临界区就是用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每一次,只能有一个线程使用它,一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待,也就是多在同一个时刻,只能有一个线程对其进行操作,并且还要保证线程对其操作后,其他线程在操作时,要保证安全。这...
2019-04-01 23:26:44 254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人