- 浏览: 1591900 次
- 来自: 上海
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
文章列表
(一)核心军规
1、不在数据库做运算
cpu计算务必移至业务层;
2、控制单表数据量
int型不超过1000w,含char则不超过500w;
合理分表;
限制单库表数量在300以内;
3、控制列数量
字段少而精,字段数建议在20以内;
4、平衡范式与冗余
效率优先;
往往牺牲范式;
5、拒绝3B
拒绝大sql语句:big sql
拒绝大事物:big transaction
拒绝大批量:big batch
(二)字段类军规
6、用好数值类型
tinyint(1Byte)
sma ...
Linux shell变量里的字符替换
- 博客分类:
- Linux
shell变量里的字符替换 (2008-11-11 09:29:17)转载▼
b=${a/123/321};将${a}里的第一个123替换为321
b=${a//123/321};将${a}里的所有123替换为321
shell调试:
sh -x aaa.sh
from:
http://bbs.chinaunix.net/viewthread.php?tid=218853&extra=&page=7#pid1628522
shell ...
百度新闻
http://bschool.hexun.com/2016-10-08/186313362.html
import java.util.concurrent.Exchanger;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* Exchange 2个线程之间交换数据
*/
public class ExchangeTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method ...
/*
* 还有一个利用场景: 应用启动的时候 ,检查所有的服务是否正确启动,如果正确启动,应用程序就可以启动成功.
**/
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.Cou ...
//一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次。若在继续所有参与线程之前更新共享状态,此屏障操作 很有用。
//设置parties、count及barrierCommand ...
更多介绍http://blog.csdn.net/java2000_wl/article/details/23556859
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
/**
* 信号灯 控制并发访问数量
* 只有 获取运行令牌(信号灯)后 ,才可以运行,当令牌(信号灯)使用完了,后面的访问 只能等着.直到有令牌被释放后,获取令牌才可以继续访问
*/
publi ...
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* 使用读写锁 实现一个 缓存模型
*
*/
public class CasheDemo {
/**
* @param args
*/
private Map<String,Object> cache=new ...
import java.util.Random;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* 读写锁 , 读写 互斥 ,写写互斥 ,对于读 比 写频繁的时候 ,优势比较明显
*/
public class ReadWriteLockTest {
/**
* @param args
*/
public static void main(String[] args) ...
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* Lock 类似 synchronize (让多个线程 执行任务的时候 相互不干扰,不被打断 :互斥)
* Condition (让多个线程之间 进行 交流 :通信)
*
* 例子 : 老大 --> 老二 -->老三 --> 老大 --> ...
// lock 练习
public class LockTest{
public static void main(String[] args) {
// TODO Auto-generated method stub
new LockTest().init();
}
private void init(){
final Outputer out=new Outputer();
new Thread(
new Runnable() {
@Override
public void run() {
// TODO ...
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Execu ...
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
/**
* java 线程池 和 带定时器的线程池
*/
public class ThreadPoolTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method ...
import java.util.Random;
/***
* 线程内独享数据 ,多个线程内操作的数据互不干扰.
* ThreadLocal 底层 采用的是 ThreadLocalMap
* 自己实现的话就是 可以采用 Map<Thread.currentThread().getName(),value>
* (个人理解 勿喷)
*/
public class ThreadLocalTest {
/**
* @param args
*/
private static ThreadLocal<Integer&g ...
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
* 定时器 timer (功能有限,只能采用[秒数等]计算定时), 其他更好的工具 quartz ,spring scheduler
*/
public class TraditionalTimerTest {
static int count=0;
/**
* @param args
*/
public static void m ...