- 浏览: 331886 次
- 性别:
- 来自: 北京
最新评论
-
zskangs1126:
JAVA NIO 大文件读取 -
Imini123:
HttpClient通过HttpPost传递参数 -
l1334388165:
为什么用了第一种,死都没用呢?
HttpClient通过HttpPost传递参数 -
buzhucele:
lantian0802 写道有点不理解,锁锁住的是资源吗,像上 ...
读写锁的使用 -
lantian0802:
有点不理解,锁锁住的是资源吗,像上文中锁数加在shareDat ...
读写锁的使用
文章列表
package concurrent;
import java.util.Random;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
/**
*1、readLock可重入;
*2、writeLock必须等待所有的readLock释放后 ...
package concurrent;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
/**
* 高效并发缓存
* @author user
*
*/
public class MemoryC ...
它允许一组线程互相等待,直到到达某个公共屏障点,barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。
package concurrent;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
/**
* 允许一组线程互相等待,直到到达某个公共屏障点
* @author user
*
*/
public class CyclicBarrierTest {
private int[] numAr ...
信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。
package concurrent;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.Semaphore;
/**
* 通过以下两种方式获得许可
* acquire()
* tryAcquire()
* @author use ...
仅在计算完成时才能获取结果;如果计算尚未完成,则阻塞 get 方法。一旦计算完成,就不能再重新开始或取消计算.
package concurrent;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
/** ...
在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待,在某些场景下同CyclicBarrier类似。
package concurrent;
import java.util.concurrent.CountDownLatch;
/**
* 闭锁,要关注await,countDown的异常,
* @author user
*
*/
public class CountDownLatchTest {
public void timeTasks(int nThreads, final Runnable task) throws Interr ...
mkdir swap 创建文件
cd swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
转换缓存文件
sudo mkswap swapfile
激活缓存文件
sudo swapon swapfile
使用free验证
java字符串反射转换对象
- 博客分类:
- java
业务对象类
import java.io.Serializable;
public class Question implements Serializable {
private static final long serialVersionUID = 1L;
private String seq;
private String question;
private String ans;
public String getAns() {
return ans;
}
public void setAns(String ans ...
非重复数字转换(二进制)
- 博客分类:
- java
import java.util.ArrayList;
import java.util.List;
public class BinaryTest {
public static List<Integer> binaryNum(int targetNum) {
List<Integer> list = new ArrayList<Integer>();
if (targetNum > 0){
int baseNum = 1;
...
产品or项目方法:
战略 --> 范围 --> 关系 --> 设计
设计过程:
本能设计 --> 行为设计 --> 反思设计
HttpClient容易忽视的细节——连接关闭
http://seanhe.iteye.com/blog/234759
Oracle tns配置
dev-***=
(description=
(address_list=(address=(protocol=tcp)(host=*.*.*.*)(port=1521)))
(connect_data=(service_name=service_name_1)(s ...
查看进程:
tasklist /svc
停止进程:
taskkill /im 2468 /f
package jmx;
/**
* 接口命名规则:xxxMBean
* 实现类:xxx
*/
public interface HelloMBean {
public void setName(String name);
public String getName();
public void print();
public void addName();
}
package jmx;
public class Hello implements HelloMBean {
private String name = &q ...
替换::%s/w1/w2/g
撤销::undo
重复::redo
设置行号::set nu
语法为 :[addr]s/源字符串/目的字符串/[option]
全局替换命令为::%s/源字符串/目的字符串/g
[addr] 表示检索范围,省略时表示当前行。
如:“1,20” :表示从第1行到20行;
“%” :表示整个文件,同“1,$”;
“. ,$” :从当前行到文件尾;
s : 表示替换操作
[option] : 表示操作类型
如:g 表示全局替换;
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
省略option时仅对每行第一个匹配串进行替换;
如果在源字符串和目 ...