2017-10-12 Java并发编程-volatile可见性的介绍 前言要学习好Java的多线程,就一定得对volatile关键字的作用机制了熟于胸。最近博主看了大量关于volatile的相关博客,对其有了一点初步的理解和认识,下面通过自己的话叙述整理一遍。 JVMJava内存模型多线程 阅读全文 >>
2017-09-15 浅析MySQL语句优化中的explain参数 有什么用?在MySQL中,当数据量增长的特别大的时候就需要用到索引来优化SQL语句,而如何才能判断我们辛辛苦苦写出的SQL语句是否优良?这时候explain就派上了用场。 MySQL性能优化 阅读全文 >>
2017-08-29 常见排序算法分析Java实现(内附大量注释) 前言排序算法属于数据结构的内容,不算太难但是要完全掌握还是得一步一步的分析代码体会不同排序算法的思想,并且试着自己实现,在面试中经常会要求手写xx排序算法,如何让一串不规则的数字用最快的时间,最少的空间将这串数字有序,想想也是一件挺有趣的事。各种排序方法性能的比较 Java算法 阅读全文 >>
2017-08-04 条件队列的唤醒机制探究 bf1,bf2是两个大小各为3的条件队列。3将要put进bf1,此时因为bf1已满而已调用wait()方法挂起线程,此时若对bf2()执行take()方法并调用notifyall()是否会唤醒wait()中的bf1?(对两个队列的操作存在于两个不同的线程中) Java多线程 阅读全文 >>
2017-07-28 并发编程笔记 Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。 闭锁用于所有线程等待一个外部事件的发生;栅栏则是所有线程相互等待,直到所有线程都到达某一点时才打开栅栏,然后线程可以继续执行。 while(true) 被底层调用,运算特别快 某些操作来不及进行 Java读书笔记 阅读全文 >>