mysql left join使用不了索引问题

2019-07-19
阅读 2 分钟
3.9k
前言在本地建了两张表,一张order表和一张zx表,由于order的用户ID是包含所有我需要的用户,所以用order作为驱动表left join zx表。 事先我在两表内都创建了unique的索引(end_date,ownerid),然后用order表 left join zx表。 ——按理说应该适用eq_ref的type,结果却根本没有用上ownerid的索引,使用强制索引也没用,但用z...

Java并发编程之线程间通讯(下)-生产者与消费者

2019-04-18
阅读 11 分钟
1.2k
上一篇文章重点唠叨了java中协调线程间通信的wait/notify机制,它有力的保证了线程间通信的安全性以及便利性。本篇将介绍wait/notify机制的一个应用以及更多线程间通信的内容。

Java并发编程之线程间通讯(上)wait/notify机制

2019-04-18
阅读 9 分钟
1.2k
如果一个线程从头到尾执行完也不和别的线程打交道的话,那就不会有各种安全性问题了。但是协作越来越成为社会发展的大势,一个大任务拆成若干个小任务之后,各个小任务之间可能也需要相互协作最终才能执行完整个大任务。所以各个线程在执行过程中可以相互通信,所谓通信就是指相互交换一些数据或者发送一些控制指令,比...

Java并发编程之设计线程安全的类

2019-04-18
阅读 8 分钟
4.9k
前边我们对线程安全性的分析都停留在一两个可变共享变量的基础上,真实并发程序中可变共享变量会非常多,在出现安全性问题的时候很难准确定位是哪块儿出了问题,而且修复问题的难度也会随着程序规模的扩大而提升(因为在程序的各个位置都可以随便使用可变共享变量,每个操作都可能导致安全性问题的发生)。比方说我们设计...

Java并发编程之指令重排序

2019-04-18
阅读 5 分钟
2.9k
需要注意到flag并不是一个volatile变量,也就是说它存在内存可见性问题,但是即便如此,num = 5也是写在flag = true的前边的,等到t1线程检测到了flag值的变化,num值的变化应该是早于flag值刷新到主内存的,所以线程t1最后的输出结果肯定是5!!!

Java并发编程之原子性操作

2019-04-18
阅读 9 分钟
6.1k
上头一直在说以线程为基础的并发编程的好处了,什么提高处理器利用率啦,简化编程模型啦。但是砖家们还是认为并发编程是程序开发中最不可捉摸、最诡异、最扯犊子、最麻烦、最恶心、最心烦、最容易出错、最不符合社会主义核心价值观的一个部分~ 造成这么多最的原因其实很简单:进程中的各种资源,比如内存和I/O,在代码...

java并发编程之 java线程基本概念

2019-03-21
阅读 4 分钟
2k
阅读建议 最好使用电脑观看。 如果你非要使用手机观看,那请把字体调整到最小,这样观看效果会好一些。 碎片化阅读并不会得到真正的知识提升,要想有提升还得找张书桌认认真真看一会书,或者我们公众号的文章。 如果觉得不错,各位帮着转发转发,如果觉得有问题或者写的哪不清晰,务必私聊我~ 本篇文章不是java语法的基...

Java并发编程之背景知识

2019-03-21
阅读 4 分钟
2.3k
老早之前的计算机只有一个处理器,而一个处理器在同一时刻只能处理一条指令,换句话说,我们的代码需要一行一行的按顺序被计算机执行,计算机只能把一个程序完整的执行完,然后再执行第二个程序。所以计算机专业的同学们要排队去机房做实验,一个人执行完然他的程序后,第二个人再执行自己的程序,这也就意味着所有计算...

面试:分布式之消息队列要点复习

2018-06-15
阅读 7 分钟
16.3k
复习要点 本文主要围绕如下几点进行阐述: 为什么使用消息队列? 使用消息队列有什么缺点? 消息队列如何选型? 如何保证消息队列是高可用的? 如何保证消息不被重复消费? 如何保证消费的可靠性传输? 如何保证消息的顺序性? 下面围绕以上七点进行阐述。需要说明一下,本文不是《消息队列从入门到精通》这种教程,因此...

基于Redis实现分布式锁

2018-05-28
阅读 5 分钟
8.2k
分布式锁一般有三种实现方式:1.数据库乐观锁;2、基于Redis的分布式锁;3.基于Zookeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis的实现分布式锁。

分布式之数据库和缓存双写一致性方案解析

2018-05-21
阅读 2 分钟
5.2k
一.为什么写这边文章 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下午的流程来进行业务操作: 但是,在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存?又或者是先删除缓存,再更新数据库?其实这一块是存在很大的争议。 二、文章结构 讲解缓...

线上java.lang.OutOfMemoryError问题定位三板斧

2018-05-21
阅读 6 分钟
3.3k
OOM(OutOfMemoryError) 问题归根结底三点原因: 本身资源不够 申请的内存太多 资源耗尽 解决思路,换成Java服务分析,三个原因也可以解读为: 有可能是内存分配确实过小,而正常业务使用了大量内存 某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽 某一个资源被频繁申请,系统资源耗尽,例如:不断创建线...

java中String和byte数组转换的小技巧

2018-05-09
阅读 2 分钟
13.2k
今日看公司代码时发现,在string和byte数组转换的过程中,大量的无聊try catch。所以写了本文,作一个java基本编程知识的小科普。