ConcurrentLinkedQueue、AraayBlockingQueue、LinkedBlockingQueue 区别及使用场景

三者区别与联系:联系,三者 都是线程安全的。区别,就是 并发 和 阻塞,前者为并发队列,因为采用cas算法,所以能够高并发的处理;后2者采用锁机制,所以是阻塞的。注意点就是前者由于采用cas算法,虽然能高并发,但cas的特点造成操作的危险性,怎么危险性可以去查一下cas算法(但一些多消费性的队列还是用的它,原因看下边使用场景中的说明)后2者区别:联系,第2和第3都是阻塞队列,都是采用锁,都有阻塞容器...
阅读(36) 评论(0)

【Java并发之】BlockingQueue

一、什么是BlockingQueueBlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种:1. 当队列满了的时候进行入队列操作 2. 当队列空了的时候进行出队列操作因此,当一个线程试图对一个已经满了的队列进行入队列操作时,它将会被阻塞,除非有另一个线程做了出队列操作;同样,当一个线程试图对一个空队列进行出队列操作时,它将会...
阅读(62) 评论(0)

彻底理解ThreadLocal

ThreadLocal是什么早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对...
阅读(1563) 评论(2)

解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法

今天在做一个项目的时候用到了spring的定时计划任务。这是Spring的特色功能,可以根据设置在特定的时间或间隔时间做特定的事。 下面给出一个例子:package net.csdn.blog.chaijunkukn; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale...
阅读(102) 评论(0)

Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushM

当我写数据的时候出现上面异常,查啊查,应该是保存数据时采用了默认的只读模式。网上的方法配置事务:1: <property name="sessi...
阅读(93) 评论(0)

Tomcat启动时卡在“INFO: Deploying web application directory ”

今天在linux上的tomcat部署一个网站时,在刚启动tomcat的时候提示启动成功,然后也能访问成功.可是第二次启动时虽然没有报错,但无法访问tomcat,查看了catalina.out日志,发现tomcat卡在了INFO: Deploying web application directory ……后来看了一篇博文解决了问题.在 $JAVA_HOME/jre/lib/security/java...
阅读(280) 评论(0)

Java父类取得子类传递的泛型参数Class类型

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test; abstract class BaseDao { public void getType() { //Class clazz = (Class) (...
阅读(350) 评论(0)

node.js&pm2搭建node生产环境

本文以 centos 6.5 x64 为例node.js 下载地址 https://nodejs.org/en/download/stable/建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单,红色的是centos X64可用地址。https://nodejs.org/dist/v5.7.1/node-v5.7.1-linux-x64.tar.xz1、下载安装...
阅读(460) 评论(0)

Navicat for MySQL出现1030-Got error 28 from storage engine错误

Navicat for MySQL出现1030-Got error 28 from storage engine错误刚刚还能用这会儿就用不了了,估计是磁盘空间不足引起的! 在根目录/下执行命令:df -h[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/map...
阅读(506) 评论(0)

RBAC 权限管理

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版主”都是角...
阅读(179) 评论(1)

Java 异常分类及统一处理

一、异常分类java异常分为”检查”和”非检查”两类,”检查”二字的意思是,代码编译时,编译器会去Check一下有没有进行异常处理(捕获或向上抛),对于归类为需要检查的异常,若没处理,编译就过不去。初学的时候,常常想为啥异常要这样分类处理? 后来明白了些,异常不过两种:主观和客观,一个大多数情况下可以避免,一个大多数情况下无法避免。像NullPointerException这类异常,大多跟程序员素质...
阅读(262) 评论(0)

用java语言实现事件委托模式

事件委托模式是一个比较常用的设计模式,但是Java语言本身没有对其做一定的封装,因此实现起来有一定难度(了解原理后很简单),相比之下.NET就容易了很多。身为一个Java爱好者,怎么向这样一个小困难低头,但是上网搜索,却没发现相关解决方案,得,自己来做一个封装吧。其实结合例子更好,那么我就用一个小例子来引出这种设计模式。一个班级,有两类学生,A类:不学习,玩,但是玩的东西不一样,有的是做游戏,与的是...
阅读(265) 评论(0)

Java实现LRU缓存

1.CacheCache对于代码系统的加速与优化具有极大的作用,对于码农来说是一个很熟悉的概念。可以说,你在内存中new 了一个一段空间(比方说数组,list)存放一些冗余的结果数据,并利用这些数据完成了以空间换时间的优化目的,你就已经使用了cache。 有服务级的缓存框架,如memcache,redis等。其实,很多时候,我们在自己同一个服务内,或者单个进程内也需要缓存,例如,lucene就对搜...
阅读(361) 评论(1)

Hibernate 缓存概述

一、Hibernate缓存概述Hibernate中提供两个级别的缓存,一级缓存和二级缓存。1.一级缓存是Session级别的缓存,它属于事物范围的缓存,一级缓存有hibernate进行管理。2.二级缓存是sessionFactory级别的缓存,它属于进程范围的缓存,二级缓存又可分为”内置缓存”和”外置缓存”,内置缓存:是hibernate在创建sessionFactory时会加载.hbn.xml文件...
阅读(525) 评论(0)

Mac下Intellij idea的SVN无法连接https地址,报错:Server ssl certificate rejected

在idea里使用SVN进行代码管理,进行checkout的时候,出现异常Cannot checkout from svn:Server SSL certificate rejected服务器的SSL证书被拒绝我们使用的SVN地址是https的,在连接这个地址的时候,svn会认为这个请求是通过证书来进行鉴权,其实我们是用账号密码。下面将各种解决方案在这一一列出来,希望能解决你的问题。第一种:查看Mac...
阅读(8046) 评论(1)

mac下安装Mysql5.7.13遇到默认密码的大坑

安装的过程很简单,就直接到官方下mysql dmg,一路下一步就可以装完.. 但是带来的问题是,默认密码不为空… mysql -uroot -p 登陆不进去… 直接使用mysqladmin改密码也提示错误.一般在centos下安装Mysql 5.7版本后,密码应该是放在 ~/.mysql_secret文件里,但是Mac呢 ?各翻遍了所有目录都没找到… 一顿狂Google之后,发现不少老外也在纠结这...
阅读(5126) 评论(1)

Mac常用快捷键组合

注意:有时候快捷键会与软件设置冲突,所以打开软件以后最好确认一下常用快捷键是否可用,避免不必要的麻烦。 command+Z=撤销(如果可以的话) command+Y=重做(如果可以的话) command+C=复制 command+V=粘贴(将文件拷贝到某处) command+option+V=(剪切)将文件移动到某处 command+A=全选 command+shift+C:打开字体...
阅读(2939) 评论(0)

MySQL异常:Incorrect key file for table '/tmp/#sql_37b_1.MYI'; try to repair it

今天突然收到报警短信,提示网站有一个模块出现异常,当时我就方了 检查了下日志,发现异常如下:Caused by: java.sql.SQLException: Incorrect key file for table '/tmp/#sql_37b_1.MYI'; try to repair it看这个异常信息真是一头雾水,但是可以确定的是,在执行一条SQL的时候,数据库(MySQL)抛出异常,先不管...
阅读(5996) 评论(0)

浏览器新标签操作源页面元素

有一个这样的功能:点击页面中的链接,打开一个新的窗口(新标签),这个时候需要在新窗口的页面中操作源页面的元素或者调用里面的JS函数。刚开始看到这个需求的时候,我以为是做不了的,感觉浏览器不会给这种权限的,事实证明,我还是太嫩了~ 其实这个功能实现起来很简单,把新打开的窗口当成是一个内嵌的 iframe 就可以了,众所周知,iframe 子窗口可以随意操作父级窗口里的元素,好了,废话说完了,直接上代码...
阅读(3230) 评论(0)

nginx提示:500 Internal Server Error错误

今天发现网站无法上传资源和发布文章,通过浏览器查看服务器的返回信息 500 Internal Server Error刚开始我以为是应用服务器或者是程序异常,检查了下各自的日志,连请求记录都无,程序代码里也没抛出过该类型的异常,所以可以从服务器或者Nginx中找原因了。1、是否磁盘空间不足?使用 df -k 查看硬盘空间是否满了。清理硬盘空间就可以解决500错误。nginx如果开启了access l...
阅读(6101) 评论(0)
339条 共17页1 2 3 4 5 ... 下一页 尾页
    编程技术学习交流群 :154514123
    微信
    个人资料
    • 访问:464307次
    • 积分:7272
    • 等级:
    • 排名:第3032名
    • 原创:303篇
    • 转载:34篇
    • 译文:2篇
    • 评论:93条
    最新评论