自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (8)
  • 收藏
  • 关注

转载 oracle bucket collect(批量查询)

采用bulk collect可以将查询结果一次性地加载到collections中,而不是通过cursor一条一条地处理。可以在select into,fetch into,returning into语句使用bulk collect。注意:在使用bulk collect时,所有的into变量都必须是collections。 create table t_test as  sel

2014-05-30 10:08:38 2380

转载 oracle plsql forall(批量增删改)

FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。1:用FORALL来增强DML的处理能力Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理;BULK COLLECT提供对数据的高

2014-05-30 10:06:33 1781

原创 BLOCK QUEUE

阻塞队列    阻塞队列是Java 5并发新特性中的内容,阻塞队列的接口是java.util.concurrent.BlockingQueue,它有多个实现类:ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue等,用法大同小异,具体可查看JDK文档,这里简单举例看下

2014-05-12 15:23:17 790

原创 LOCK

简单使用Lock锁    Java 5中引入了新的锁机制——java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作。Lock接口有3个实现它的类:ReentrantLock、ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁、

2014-05-12 15:22:17 502

原创 Executor Frame & Thread pool

Executor框架简介    在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在Java 5之后,通过Executor来启动线程比使用Thread的start方法更好,除了更易

2014-05-12 15:21:01 600

原创 java voliatile

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种

2014-05-12 15:19:05 922

原创 java Thread Memory

主内存与工作内存    Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量主要是指共享变量,存在竞争问题的变量。Java内存模型规定所有的变量都存储在主内存中,而每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不

2014-05-12 15:16:55 641

原创 synchronized memory visability

加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另外一个重要的方面:内存可见性。我们不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且还希望确保当一个线程修改了对象状态后,其他线程能够看到该变化。而线程的同步恰恰也能够实现这一点。     内置锁可以用于确保某个线程以一种可预测的方式来查看另一个线程的执行结果。为了确保所有的线程都能看到共享变量

2014-05-12 15:13:38 502

原创 producer & consumer

生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。    这里实现如下情况的生产--消费模型:    生产者不断交替地生产两组数据“姓名--1 --> 内容--1”,“姓名--2--> 内容--2”,消费者不断交替地取得这两组数据,这里的“姓名--1”和“姓名--2”模拟为数据的名称,“内容--1 ”

2014-05-12 15:12:11 444

原创 notifyAll()

notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块后,threadA再开始wait,便会一直阻塞等待,直到被别的线程打断。 遗漏通知的代码    下面给出一段代码演示通知是如何遗漏的,如下:[java] vie

2014-05-12 15:11:09 572

原创 notify() between Thread

notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块后,threadA再开始wait,便会一直阻塞等待,直到被别的线程打断。 遗漏通知的代码    下面给出一段代码演示通知是如何遗漏的,如下:[java] vie

2014-05-12 15:09:55 424

原创 wait() notify() notifyAll()

在Java中,可以通过配合调用Object对象的wait()方法和notify()方法或notifyAll()方法来实现线程间的通信。在线程中调用wait()方法,将阻塞等待其他线程的通知(其他线程调用notify()方法或notifyAll()方法),在线程中调用notify()方法或notifyAll()方法,将通知其他线程从wait()方法处返回。      Object

2014-05-12 15:08:27 433

原创 dead lock

当线程需要同时持有多个锁时,有可能产生死锁。考虑如下情形:      线程A当前持有互斥所锁lock1,线程B当前持有互斥锁lock2。接下来,当线程A仍然持有lock1时,它试图获取lock2,因为线程B正持有lock2,因此线程A会阻塞等待线程B对lock2的释放。如果此时线程B在持有lock2的时候,也在试图获取lock1,因为线程A正持有lock1,因此线程B会阻塞等待A对lock

2014-05-12 15:07:11 663

原创 Thread safe or not safe Collection

在集合API中,最初设计的Vector和Hashtable是多线程安全的。例如:对于Vector来说,用来添加和删除元素的方法是同步的。如果只有一个线程与Vector的实例交互,那么,要求获取和释放对象锁便是一种浪费,另外在不必要的时候如果滥用同步化,也有可能会带来死锁。因此,对于更改集合内容的方法,没有一个是同步化的。集合本质上是非多线程安全的,当多个线程与集合交互时,为了使它多线程安全,必须采

2014-05-12 15:05:34 578

原创 synchronized

在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确保在某一时刻,方法内只允许有一个线程。      采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这

2014-05-12 15:03:57 398

转载 runnable & Thread

Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势:    1、可以避免由于Java的单继承特性而带来的局限;    2、增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;    3、适合多个相同程序代码的线程

2014-05-12 15:01:51 490

转载 volatile

volatile用处说明    在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,

2014-05-12 14:47:43 429

原创 Daemon Thread

守护线程  Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)      用户线程即运行在前台的线程,而守护线程是运行在后台的线程。 守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,

2014-05-12 14:45:04 599

原创 挂起和恢复线程

挂起和恢复线程    Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的。如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件——其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁。另外,在长时间计算期间挂起线程也可能导致问题。    下面的代码演示了通过休眠来延缓运行,模

2014-05-12 14:42:28 569

原创 interrupt()

使用interrupt()中断线程    当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。    下面一段代码演示了休眠线程的中断:[java]

2014-05-12 14:41:05 475

原创 内置锁

【Java并发编程】之一:可重入内置锁    每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。    当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然而,由于内置锁是可重入的,因此如果摸

2014-05-12 14:36:00 511

翻译 java extends & implements 一个一般不会注意到的重要区别

Well so many good Answers, i want to add more on this, This will help to understandExtending v/s Implementing Thread_Extends binds two class files very closely and can cause some pretty hard to de

2014-05-11 17:27:45 641

转载 java null 和 “”的区别

自己发懒,查了下,发现这个总结的还不错,故转载之简单点说null表示还没new出对象,就是还没开辟空间  “”表示new除了对象,但是这个对象装的是空字符串。比如声明一个 String str ;如果说str是null,那么内存根本没创建字符串对像,[color=darkblue][/color]并由str引用。如果说str是空串,那么确实存在一个由str引用的字符串对像,只不过这

2014-05-06 13:37:12 472

转载 Spring ref属性配置

在或元素内部还可以使用ref元素。该元素用来将bean中指定属性的值设置为对容器中的另外一个bean的引用。如前所述,该引用bean将被作为依赖注入,而且在注入之前会被初始化(如果是singleton bean则已被容器初始化)。尽管都是对另外一个对象的引用,但是通过id/name指向另外一个对象却有三种不同的形式,不同的形式将决定如何处理作用域及验证。第一种形式也是最常见的形式是通过使用标记

2014-05-06 08:24:24 724

spring,jvm,osgi文档

spring,jvm,osgi的相关详细文档,都是自己找到的一些好的学习资料

2015-11-26

redis_windows_32_64

redis for windows 32 bit or 64 bit 主要用于32电脑上测试。 redis win 64 bit获取地址:https://github.com/MSOpenTech/redis/releases linux版本:官网下载

2015-11-17

ECLIPSE MAT(内存分析工具)

官网上下载速度慢,总下载失败,这是目前最新版本的(2015年6月23日14:16:10)。共享给大家

2015-06-23

spring-cglib-repack-3.1.jar

spring-cglib-repack-3.1.jar

2015-06-04

spring-objenesis-repack-2.1

spring-objenesis-repack-2.1

2015-06-04

Axure RP Pro工具包

Axure RP Pro专为Rapid Prototype Design而生,它可以辅助产品经理快速设计完整的产品原型,并结合批注、说明以及流程图、框架图等元素将产品完整地表述给各方面设计人员,如UI、UE等等,并在讨论中不断完善。 作为办公自动化辅助工具,Axure RP Pro更适合Web Prototype制作,现在Axure公司发布了Axure RP 7版,这是一次重大版本升级,基于全新架构(MS .net framework 4),并新增很多功能。 亲测,好用。

2015-01-04

ECLIPSE下的SVN插件URL(无需svn connector)

ECLIPSE下的SVN插件URL(无需svn connector)

2014-09-26

SouceInsight3.5绿色免安装 代码查看工具

C++代码查看及编写工具。在Linux下查看代码需要一个文件一个文件的来回翻,而在此软件下,你可以在window或Linux下,方便快速的查看个文件代码,非常方便。

2012-12-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除