上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 61 下一页

2018年7月30日

死锁的简单理解及示例

摘要: 死锁,就是两个(或多个)线程对彼此加锁的资源进行加锁,导致彼此等待而永远阻塞。 比如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B,线程2也永远得不到A,并且它们永远也不会知道发生了这样的事情。为了得到彼此的对象(A和B 阅读全文

posted @ 2018-07-30 16:05 乐之者v 阅读(837) 评论(0) 推荐(0)

2018年7月27日

java并发:Condition的应用

摘要: Condition类可以使线程等待,也可以唤醒线程。Condition类的await方法和Object类的wait方法等效Condition类的signal方法和Object类的notify方法等效Condition类的signalAll方法和Object类的notifyAll方法等效 注意:awi 阅读全文

posted @ 2018-07-27 11:51 乐之者v 阅读(199) 评论(0) 推荐(0)

2018年7月26日

java并发:读写锁ReadWriteLock

摘要: 在没有写操作的时候,两个线程同时读一个资源没有任何问题,允许多个线程同时读取共享资源。 但是如果有一个线程想去写这些共享资源,就不应该再有其它线程对该资源进行读或写。 简单来说,多个线程同时操作同一资源时,“读读共存,写写不共存,读写不共存”。 读写锁的锁定规则如下:获得读锁后,其它线程可获得读锁而 阅读全文

posted @ 2018-07-26 21:33 乐之者v 阅读(193) 评论(0) 推荐(0)

图解Java常用数据结构(一)【转载】

摘要: 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的. HashMap中的单链表是尾插, 而不是头插入等等, 后 阅读全文

posted @ 2018-07-26 09:21 乐之者v 阅读(211) 评论(0) 推荐(0)

2018年7月25日

java并发中的锁

摘要: java中的锁,最基本的是Lock接口。 Lock接口中的方法,主要是: lock(): 获取锁,lock()方法会对Lock实例对象进行加锁,因此所有对该对象调用lock()方法的线程都会被阻塞,直到该Lock对象的unlock()方法被调用。 unlock(): 释放锁, Lock在发生异常时, 阅读全文

posted @ 2018-07-25 17:31 乐之者v 阅读(238) 评论(0) 推荐(0)

2018年7月24日

Mybatis中的N+1问题与延迟加载

摘要: 0.什么是N+1问题? 在查询中一下子取出所有属性,就会使数据库多执行几条毫无意义的SQL 。实际中不需要把所有信息都加载进来,因为有些信息并不常用,加载它们会多执行几条毫无用处的 SQL,导致数据库资源的损耗和系统性能的下降。假设现在有 N 个关联关系完成了级联,那么只要再加入一个关联关系,就变成 阅读全文

posted @ 2018-07-24 15:05 乐之者v 阅读(3788) 评论(0) 推荐(0)

2018年7月18日

java线程池相关接口Executor和ExecutorService

摘要: 在线程池的api中,Executor接口是最上层的接口,内部只有一个方法。如下: ExecutorService接口继承自Executor接口,结构如下: 而线程池的类ThreadPoolExecutor,具体关系如下: execute():用于执行线程 shutdown() : 关闭线程 Exec 阅读全文

posted @ 2018-07-18 16:27 乐之者v 阅读(287) 评论(0) 推荐(0)

Mybatis多表查询(一对一、一对多、多对多)

摘要: Mybatis的多表级联查询 。 一对一可以通过<association>实现,一对多和多对多通过<collection>实现。 <discriminator> 元素,可以灵活选择属性column使用哪个字段进行鉴别。 一. 一对一的级联查询 对user_t表和book_t表进行连接查询。sql语句 阅读全文

posted @ 2018-07-18 11:44 乐之者v 阅读(5585) 评论(0) 推荐(0)

2018年7月16日

final关键字的简单理解

摘要: final可以修饰类,方法,变量。 1.final修饰的类,不可以被继承。 2.final修饰方法,可以把方法锁定,以防任何继承类修改它的含义。 3.fianl修饰的变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改; 如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对 阅读全文

posted @ 2018-07-16 16:51 乐之者v 阅读(200) 评论(0) 推荐(0)

阻塞队列实现生产者消费者模式

摘要: 阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。 这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就 阅读全文

posted @ 2018-07-16 15:36 乐之者v 阅读(5552) 评论(0) 推荐(2)

上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 61 下一页

导航