摘要: 一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchroniz 阅读全文
posted @ 2016-11-03 17:55 费曼带我飞 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 这篇文章讲了 1.同步异步概念(消去很多疑惑),同步就是一件事一件事的做;sychronized就是保证线程一个一个的执行。 2.我们需要明白,锁机制有两个层面,一种是代码层次上的,如Java中的同步锁,典型的就是同步关键字synchronized ( 线 程级别的)。另一个就是数据库层次上的,比较 阅读全文
posted @ 2016-11-03 17:20 费曼带我飞 阅读(8059) 评论(1) 推荐(0) 编辑
摘要: 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op 阅读全文
posted @ 2016-11-03 16:55 费曼带我飞 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 1.nvl(exp1,exp2) NVL lets you replace null (returned as a blank) with a string in the results of a query. If expr1 is null, then NVL returns expr2. If 阅读全文
posted @ 2016-11-03 16:43 费曼带我飞 阅读(3106) 评论(0) 推荐(0) 编辑
摘要: static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用。 一、在程序的一次执行过程中,static{}语句块中的内容只被执行一次,看下面的示例: 示例一 结果:你会发现虽然执行了两条Class.f 阅读全文
posted @ 2016-11-03 15:56 费曼带我飞 阅读(198) 评论(0) 推荐(0) 编辑
摘要: -- 事务级临时表:提交时删除数据 create global temporary table tmp_table1 ( x number ) on commit delete rows ; -- 会话级临时表:会话结束时删除数据 create global temporary table tmp_ 阅读全文
posted @ 2016-11-03 09:53 费曼带我飞 阅读(3818) 评论(0) 推荐(0) 编辑