开发中的问题
文章平均质量分 57
一块钱硬币2015
纸上得来终觉浅,绝知此事要躬行。
展开
-
记一次synchronized锁字符串引发的坑兼再谈Java字符串
问题描述业务有一个需求,我把问题描述一下:通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间。并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKIE,发现COOKIE超过失效时间,则调用脚本访问网站N获取一次数据。为了防止多线程取到同一个IP,同时发现该IP对应的COOKIE失效,同时去调用脚本更新COOKIE,针对IP加了锁。为了保证锁的...原创 2018-03-09 10:40:12 · 528 阅读 · 0 评论 -
实现Comparable接口不严谨导致Comparison method violates its general contract!
因为业务需要,自己的model实现了Comparable接口,在Service层使用Collections.sort()方法对model对象的list进行排序。但是在运行的时候,却报下面的异常。java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.C...原创 2017-12-21 14:53:07 · 555 阅读 · 0 评论 -
多线程编程注意捕获异常
多线程编程时,注意每个线程处理的任务是否存在异常的情况,如果存在,必须try catch进行捕获,否则只要一个线程出现异常,就会阻塞后面的线程的执行。 工资代发业务时,通过rabbitMQ消息队列的方式和其他系统进行交互,在对发过来的消息进行校验员工数据,其中一条数据出现了异常,导致后面的消息一只阻塞在队列中,无法消费。例如下面的例子:参考:https://my.oschin...原创 2018-03-09 13:55:47 · 293 阅读 · 0 评论 -
数据库加锁
场景一: 比如分配任务场景。在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而且任务的分配规则设计成了通过审核人员每次主动的请求拉取,然后服务端从任务池中随机的选取任务进行分配。这个场景看到这里你会觉得比较单一,但是实际的分配过程中,由于涉及到了按用户聚类的问题,所以要比我描述的复杂,但是这里为了说明问题,大家可以把问题简单化理解。那么在使用过程...原创 2018-03-14 09:53:06 · 1022 阅读 · 1 评论