java读写锁实现机制
package thread.lock;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* @file_name ReadAndWriteLockDemo.java
* @description 读写锁DEMO
* @author 张明亮
* @date 2009.09.27
*/
public class ReadAndWriteLockDemo {
ReentrantReadWriteLock rwLock = new ReentrantReadWriteLock();
// 读锁
Lock rLock = rwLock.readLock();
// 写锁
Lock wLock = rwLock.writeLock();
// 货架
List<String> stock = new ArrayList<String>();
//互斥锁
ReentrantLock lock = new ReentrantLock();
/**
* 商品买卖
* <br>
* 当商品数量小于1时,释放读锁并获取写锁 生产商品后,
* <br>
* 锁降级在写锁保护下重新获取读锁并消费商品
*/
public void sell() {
// lock.lock();
try {
rLock.lock();
if (stock.size() <= 0) {
rLock.unlock();
wLock.lock();
manufacture();
rLock.lock();
wLock.unlock();
}
consume();
rLock.unlock();
} finally {
// lock.unlock();
}
}
/**
* 生产商品
*/
private void manufacture() {
stock.add("product");
}
/**
* 消费商品
*/
private void consume() {
System.err.println(stock.remove(0));
}
public static void main(String[] args) {
final ReadAndWriteLockDemo rwDemo = new ReadAndWriteLockDemo();
rwDemo.sell();
// Thread t1 = new Thread("threa--1") {
// public void run() {
// rwDemo.sell(
相关文档:
原文地址:http://www.javaeye.com/topic/477731
版权声明:所有版权归原作者所有
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:
Java代码
public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN &nb ......
今天遇到了这个问题 了呵呵 解决了给大家分享先,java.lang.OutOfMemoryError: Java heap space 引起了我上传出错。我解决办法就是看你使用的tomcat服务器版本是什么样的,如果你的tomcat/bin下边有tomcatw.exe 就方便了,直接可视化操作哦下下图
其中设置初始内存池和最大内存池,设置原则是根据你的物理内存来定。
如果 ......
java常用正则表达式
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^0|[1-9][0-9]*$"。
只能输入有两位小数的正实数:"^[0-9]+( ......
是拷贝的别人的,以备学习
package com.unmi.db;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 读取 SQL 脚本并执行
* @author Unmi
*/
pub ......
在《JDBC Driver For SQL2000/2005/2008
》一文中,邀月介绍了如何下载并使用jdbc连接SQL Server,
今天有人问起,如何以windows集成方式连接SQL Server,这个以前真没试过。
于是,打开netBeans测试了一下,代码如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the edit ......