对于某些应用需要实时读取配置文件,但是读取的频率非常高,比如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
分享到:
相关推荐
Java的`Thread.setDaemon()`方法可以将线程设置为守护线程。 五、读写锁模式 在多线程环境下,读写锁可以提高并发性能。读写锁允许多个线程同时读取数据,但在写入时则独占资源,防止数据不一致。Java的`...
### Windows 下 Tomcat 的守护进程与心跳检测...例如,可以通过外部配置文件来设置心跳检测的时间间隔、超时时间等参数,以满足不同场景的需求。此外,还可以考虑增加日志记录功能,以便于后续的故障排查和维护工作。
在计算机科学领域,多线程设计模式是一种优化程序性能、提高资源利用率的重要技术。它允许一个应用程序同时执行多个任务,从而提升...而“xml”文件可能是相关资料的配置文件或索引,用于辅助理解和应用这些设计模式。
7. **文件I/O**:游戏可能需要保存和读取用户进度、配置文件等,因此了解Java的文件I/O操作也是很重要的。 8. **网络编程**:对于多人在线游戏,Java的Socket编程可以用来实现客户端和服务器之间的通信。 9. **...
9. **文件操作**:对于涉及文件修改的定时任务,需要掌握Java的I/O流和NIO API来读取、写入或删除文件。 10. **并发编程**:在处理多任务同时执行时,需要了解并发编程的概念,如锁、同步、并发容器等,以避免竞态...
10. **多线程**:阐述并发编程的基础,如线程的创建、同步机制(synchronized关键字、wait()和notify()方法)、线程池和守护线程。 11. **文件和目录操作**:涉及Java的File类,如何创建、删除、重命名文件和目录,...
实例124 爱子(守护线程) 361 实例125 有始有终(线程连接) 363 实例126 模拟下载文件(线程等待和通报) 365 实例127 家族等级(线程优先级) 368 实例128 定时器(Timer) 371 实例129 没法吃饭(死锁) ...
7. **文件I/O**:保存和读取配置文件,可能用到`java.io`包。 8. **异常处理**:保证程序的健壮性,会看到大量的`try-catch`语句和自定义异常。 通过对GCALDaemon源码的深入学习,开发者不仅可以提升Java编程能力,...
1. **守护线程(Daemon Thread)**:在Java中,守护线程是一种特殊的线程,它的主要任务是为其他线程提供服务。当所有非守护线程结束时,程序会退出,即使还有守护线程运行。 2. **Thread的中断标志**:线程的中断...
框架可能提供配置文件读取和解析能力,便于设置启动参数。 6. **重启和监控**:对于长期运行的服务,故障恢复和自我监控是必备功能。框架可能包含了检测进程状态并自动重启的机制。 7. **线程模型**:守护程序可能...
当所有非守护线程结束时,守护线程也会自动结束。 **如何在Windows和Linux上查找哪个线程CPU利用率最高** - **Windows:** 使用`wmic process where name='process_name.exe' get Caption,CommandLine,Processid /...
线程属性主要包括线程优先级、守护线程与用户线程的区别、线程组等。 #### 1.5 同步 同步是解决多线程并发操作共享资源时出现问题的一种机制,主要通过`synchronized`关键字或者`ReentrantLock`等工具类来实现。 #...
- 面试题:什么是守护线程?如何创建和停止线程? - 实战代码:实现Runnable接口和Thread类,演示线程同步(synchronized)和并发工具类(如Semaphore、CountDownLatch)。 6. **IO流**: - 面试题:对比...
实例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 ...
- **定义**:守护线程是在后台运行的服务线程,不阻止程序退出。 - **作用**:为其他线程提供服务。 - **设置方法**:通过`setDaemon(true)`在启动前设置。 **1.3 线程组** - **概念**:线程组用于管理一组线程,...