`
文章列表
Redis笔记(一)纯小白版篇 redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。  这是每个人学习Redis使用的第一步最常见的做法: 第一:下载          Redis下载:从官网http://redis. ...
 java使用redis简单说明 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,听说他的性能远高于memcached,所以想自己搞个玩下。看到底有什么好处。 在windows下使用redis首先要下载一个。非官方版 http://code.google.com/p/servicestack/wiki/RedisWindowsDownload 下载完的Redis文件夹有以下几个文件 redis-server.exe:服务程序 指定redis的配置文件,如没有指定,则使用默认设置 在控制台下运行,输入cmd再跳到你redis的目录下 E:\redis ...
Java线程:线程的同步-同步方法   线程的同步是保证多线程安全访问竞争资源的一种手段。 线程的同步是Java多线程编程的难点,往往开发者搞不清楚什么是竞争资源、什么时候需要考虑同步,怎么同步等等问题,当然,这些问题没有很明确的答案,但有些原则问题需要考虑,是否有竞争资源被同时改动的问题?   在本文之前,请参阅《Java线程:线程的同步与锁》,本文是在此基础上所写的。   对于同步,在具体的Java代码中需要完成一下两个操作: 把竞争访问的资源标识为private;
Java线程:线程的同步-同步块   对于同步,除了同步方法外,还可以使用同步代码块,有时候同步代码块会带来比同步方法更好的效果。   追其同步的根本的目的,是控制竞争资源的正确的访问,因此只要在访问竞争资源的时候保证同一时刻只能一个线程访问即可,因此Java引入了同步代码快的策略,以提高性能。   在上个例子的基础上,对oper方法做了改动,由同步方法改为同步代码块模式,程序的执行逻辑并没有问题。    
Java线程:并发协作-生产者消费者模型   对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。   实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。 对于此模型,应该明确一下几点: 1、生产者仅仅在仓储未满时候生产,仓满则停止生产。 2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。 3、当消费者发现仓储没产品可消费时候会通知生产者生产。
Java线程:并发协作-死锁   线程发生死锁可能性很小,即使看似可能发生死锁的代码,在运行时发生死锁的可能性也是小之又小。   发生死锁的原因一般是两个对象的锁相互等待造成的。   在《Java线程:线程的同步与锁 ...
Java线程:volatile关键字   Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。   谈及到volatile关键字,不得不提的一篇文章是:《Java 理论与实践: 正确使用 Volatile 变量》,这篇文章对volatile关键字的用法做了相当精辟的阐述。   之所以要单独提出volatile这个不常用的关键字原因是这个关键字在高性能的多线程程序中也有很重要的用途,只是这个关键字用不好会出很多 ...
Java线程:线程的调度-守护线程   守护线程与普通线程写法上基本么啥区别,调用线程对象的方法setDaemon(true),则可以将其设置为守护线程。   守护线程使用的情况较少,但并非无用,举例来说,JVM的垃圾回收、内存管理等线程都是守护线程。还有就是在做数据库应用时候,使用的数据库连接池,连接池本身也包含着很多后台线程,监控连接个数、超时时间、状态等等。   setDaemon方法的详细说明: public final 
简介: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错 ...
Java线程:线程的调度-合并   线程的合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法。   join为非静态方法,定义如下: void join()        等待该线程终止。    void join(long millis)        等待该线程终止的时间最长为 millis 毫秒。    void join(long millis, 
Java线程:线程的调度-让步   线程的让步含义就是使当前运行着线程让出CPU资源,但是然给谁不知道,仅仅是让出,线程状态回到可运行状态。   线程的让步使用Thread.yield()方法,yield() 为静态方法,功能是暂停当前正在执行的线程对象,并执行其他线程。   /** * Java线程:线程的调度-让步 * * @author leizhimin 2009-11-4 9:02:40 */ public class Test { 
在集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。 1. 客户端cookie加密 简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。    问题:session中数据不能太多,最好只有个用户id。    参考实现:http://rollerweblogger.org/ 2. application server的session复制    可能大部分应用服务器都提供了session复制的功能来实现集群,tomcat,jboss,was都提 ...
每种方法中上面的是Excel的行数,下面的是Excel的列数。 方法1:  ActiveSheet.UsedRange.Rows.Count     ActiveSheet.UsedRange.Columns.Count       缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除),用这个命令仍返回未清除前的值。就是说现在虽然是空的,但是你曾经用过也算你的。方法2:  ActiveSheet.Range("A65535").End(xlUp).Row  ActiveSheet.Range("IV1").End ...
1、序列是按照一定的规则生产的数值,序列的作用非常的大,比如银行交易中的流水号,就是记录每笔交易的关键字段。  (1)创建SEQUENCE的时候,最好不要加双引号,比如: db2 ==> CREATE SEQUENCE "seq_test" ... 应该改为: db2 ==> CREATE SEQUENCE seq_test ... 加了双引号,表示大小写敏感,如果你使用以下语句去查找序列的话,则会报错: db2 ==> select (nextval for seq_te

ant执行java类

    博客分类:
  • ant
    在前几天的ant使用中,觉得还是自动化来做更轻松一些啦.每次都打开eclipse来生成文件,是很麻烦的一件事情,还是直接执行ant,更好一些,在执行的同时,还可以舒舒服服喝口茶,岂不快哉.     那么开始吧. ant 执行java其实很简单,下面几句话就可以搞定啦 <target name="run" depends="compile,build"> <java fork="true" classname="com.XXX.Testmain"> < ...
Global site tag (gtag.js) - Google Analytics