Comparator
Comparator
自低向上检查该类是否已经加载 自顶向下进行实际查找和加载 这里用双亲委派,主要出于安全来考虑,不会让随意的class加载进去 自定义的类加载器 继承ClassLoader,重...
ThreadPoolExecutor 当有任务进入线程池时,如果核心线程数没满,则创建去运行, 当核心线程数满了,会放入等待队列等待, 这时候,如果等待队列满了,又有新的任务...
强引用,只要有引用指向一个对象,对象就不会被回收 软引用,一个对象只有一个软引用指向它,当系统内存不够用的时候,会回收软引用指向的对象,内存够用不会回收它。 弱引用,一个对象...
ThreadLocal,线程之间隔绝。 输出: 上面代码,在一个线程中设置 tl.set(new Person()),在另一个线程中tl.get()的是null。在Threa...
示例用法: LockSupport.park() 对应一个LockSupport.unpark(),类似于一个计数 上面这样的话,线程就不会阻塞。
wait() 阻塞,释放锁 notify() 通知阻塞的那个线程到就绪状态,但不是让出锁给他,被唤醒的线程要运行必须得获得锁。 示例:
示例用法:
今天在公司做的一个订购成功后发送给用户的邮件时,见到了之前别人留下来的一个问题。类似于下面这样的代码: main函数中外部有一个persons对象,传入test函数中,tes...
实现一个同步容器,有2个生产者线程,10个消费者线程。 这里是用了notifyAll();会存在一个问题,比如此时容器满了,消费者notifyAll(),可能会被其他消费者拿...
简单用法: 输出:
简单介绍CountDownLatch的用法 上面意思是,当其他线程执行完到latch -> 0,主线程才会在latch.await() 继续执行下去,不然就会等待。也可以用j...
boolean tryLock(long time, TimeUnit unit) Lock lock = new ReentrantLock();lock.tryLock(...
Copmare And Set/Swap cas(V,E,N) ,cpu原语支持,中间不被打断。V - 要改的值E - 我期望的这个值是多少N - 要设置的新值 可以这...
保证线程可见性缓存一致性协议 禁止指令重排序JMM ,内存屏障 这个可以看单例模式的双重检查 线程可见性含义: 每个线程运行的时候,会先去主内存拷贝一份数据到自己的工作内存当...
java中的每个对象都可以作为锁,(不要用String,Integer,Long),当synchrozied 在不同位置,锁的对象不一样: 普通同步方法,锁是当前实例对象 静...
Thread.sleep(500);当前线程在cpu中睡个500ms,让给别的线程去运行。sleep完回到就绪状态 Thread.yield();让出cpu一会,返回就绪状态...
1.Redo日志—innodb存储引擎的日志文件 当发生数据修改的时候,innodb引擎会先将记录写到redo log中, 并更新内存,此时更新就算是完成了,同时innodb...
聚簇索引:数据和文件放在一起:InnoDB.frm:存放的是表结构,.ibd:存放的是数据文件和索引文件。 非聚簇索引:数据和索引单独一个文件:MyISAM.frm:存放的是...