对于某些应用需要实时读取配置文件,但是读取的频率非常高,比如1秒100次以上,修改配置文件的频率远远低于读取频率。此时如果当程序执行的时候每次都 读取配置文件,那么系统的io可能会有些压力,因此可以做一个守护线程每隔一段时间(例如1分钟)读取一次配置文件,代码直接取最新的配置文件的值来执 行,这样既降低了读取配置文件的频率又获得了较好的实时性。
代码如下:
java 代码
- import java.io.InputStream;
- import java.util.Properties;
-
-
-
-
-
-
- public class Configation extends Thread {
-
-
- private static Properties p;
-
-
-
-
- public Configation(){
-
- }
-
-
-
-
- public void run(){
- while(true){
-
- InputStream in = Configation.class.getClassLoader().getResourceAsStream("config.properties");
- if (p == null){
- p = new Properties();
- }
- try{
- p.load(in);
- Thread.sleep(10000);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
-
-
-
-
-
- public Properties getProperties(){
- return p;
- }
-
-
-
-
-
- public static void main(String[] args){
- Configation c = new Configation();
- c.setDaemon(true);
- c.start();
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- while(true){
- Properties p = c.getProperties();
- System.out.println(p.getProperty("com.test.a"));
- }
-
- }
-
- }
其中c.setDaemon(true)设置线程为守护线程,关于守护线程可以参考
http://www.google.cn/search?complete=1&hl=zh-CN&q=java+%E5%AE%88%E6%8A%A4%E7%BA%BF%E7%A8%8B&meta=&aq=t&oq=java+%E5%AE%88%E6%8A%A4
分享到:
相关推荐
实例124 爱子(守护线程) 361 实例125 有始有终(线程连接) 363 实例126 模拟下载文件(线程等待和通报) 365 实例127 家族等级(线程优先级) 368 实例128 定时器(Timer) 371 实例129 没法吃饭(死锁) ...
实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 实例143 只显示文件中指定的字符 214 实例...
实例229 变形金刚中的守护神(守护线程) 424 实例230 查看JVM中所有的线程的活动状况 426 实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM...
实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 实例143 只显示文件中指定的字符 214 实例144 ...
实例229 变形金刚中的守护神(守护线程) 424 实例230 查看JVM中所有的线程的活动状况 426 实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233...
实例229 变形金刚中的守护神(守护线程) 424 实例230 查看JVM中所有的线程的活动状况 426 实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM...
Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( ) 33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行"Hadoop namenode -...
Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( ) 33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行"Hadoop namenode -...