package test;
public class TestDaemon {
public class DaemonThread extends Thread{
public void run()
{
try {
//Thread.sleep(20);
while(true)
{
Thread.sleep(897);
System.out.println(System.currentTimeMillis() + ": run");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void test01()
{
try {
DaemonThread[] dts = new DaemonThread[2];
for(int i=0; i<dts.length; i++)
{
dts[i] = new DaemonThread();
//http://hi.baidu.com/zolxl/blog/item/0cbfbfb570bda0c236d3ca8d.html
//当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;
//如果还有一个或以上的非守护线程则不会退出。
//下面这一句,用于测试如上内容。 注释掉将一直运行。不注释,将只运行一会儿。
//dts[i].setDaemon(true);
dts[i].start();
}
Thread.sleep(897*3-1);
System.out.println(System.currentTimeMillis() +":" + "Thread.sleep(***)");
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
}
/**
* @param args
*/
public static void main(String[] args) {
TestDaemon td = new TestDaemon();
td.test01();
}
}
分享到:
相关推荐
在这个例子中,C语言编写的守护进程通过JNI接口与Java层通信,打包成SO库后,可以在Android系统中使用。由于Android系统的安全机制,通常的安全软件可能无法检测或终止这种原生代码运行的守护进程。 在Android上,...
总的来说,通过这些Java技术,你可以创建一个自动监控和重启JBOSS服务器的守护进程,确保服务的稳定性和连续性。记得在实际应用中,还需要考虑错误处理、日志记录等最佳实践,以提高程序的健壮性和可维护性。
JavaService是一个工具包,它允许Java应用程序在Windows操作系统下作为服务来运行,类似于其他系统中的守护进程。这个工具使得开发者可以轻松地将Java程序转换为Windows服务,使其能够在系统启动时自动启动,并在...
- 配置`rmid`:启动RMI守护进程,管理远程对象的生命周期。 - 编译和打包:使用JAR命令创建包含远程接口和实现的JAR文件。 - 注册表注册:使用`java.rmi.Naming`类将远程对象注册到注册表。 5. **异常处理**: ...
浅谈java中守护线程与用户线程 本篇文章主要介绍了java中守护线程与用户线程的概念和区别。...本篇文章主要介绍了java中守护线程与用户线程的概念和区别,并通过例子来加深对守护线程和用户线程的理解。
8. **监控与守护进程** 对于长期运行的Java应用程序,可以使用`nohup`或`screen`命令使其在后台运行,即使终端关闭也不会被中断。还可以编写更复杂的脚本来管理和重启失败的服务。 通过理解和应用这些知识点,...
在Java编程语言中,线程是程序执行的基本单元,它允许程序同时执行多个任务。创建线程是提高程序效率和响应性的重要手段。本示例将深入探讨如何在Java中创建线程,以及相关的概念和技术。 1. **线程的概念**: ...
Java中的守护进程最有名的例子是GC(垃圾回收)。 在开发守护线程时需要注意两点: 1. 必须在线程启动之前,即执行thread.start()方法前,执行thread.setDaemon(true)方法,否则会抛出异常...
这本书“Java并发编程实践中(中+英+例子源码)”提供了深入理解Java并发机制的宝贵资源。下面我们将详细探讨其中涉及的一些关键知识点。 1. **线程与进程**:在并发编程中,线程是程序执行的基本单位,而进程则是...
这可以通过配置JODConverter或直接控制OpenOffice的守护进程实现。 7. **PDF渲染质量**: 转换后的PDF质量取决于源文档的格式和复杂性。复杂的布局、图像和特殊字体可能会导致转换效果不尽人意。因此,测试和调整...
每个Java应用启动时都会创建一个JVM进程,而程序代码的执行是以线程的形式进行。最常见的例子是主线程,它负责运行main()方法。如果需要并发执行其他任务,可以通过扩展Thread类或者实现Runnable接口来创建新的线程...
1. **线程基础**:首先,书中可能会介绍线程的基本概念,包括进程与线程的区别,以及Java中创建线程的两种方式:继承Thread类和实现Runnable接口。此外,还会讲解线程的状态(新建、可运行、运行、阻塞和死亡)及其...
- `-d`:将Memcached作为守护进程在后台运行。 如果需要进行故障排查(troubleshooting),可以在命令后面加上`-vv`选项以获取更详细的日志信息。 ##### 2.3 测试 测试Memcached是否正常工作也很简单,可以通过...
- **线程**:线程是程序执行的最小单元,一个进程可以包含多个线程,它们共享同一内存空间,各自执行不同的任务。 - **并发**:多个线程在同一时间段内交替执行,给人一种同时运行的错觉。 2. **创建线程的两种...
在操作系统层面,线程是进程中的执行单元,每个进程都有自己的内存空间,而多个线程则共享同一进程的内存。在Java中,线程的实现有两种主要方式:扩展`java.lang.Thread`类或实现`java.lang.Runnable`接口。 扩展`...
在这个例子中,`ThreadDemo`类并没有继承Thread,而是通过创建两个Thread对象,分别携带了`MyRunnable`实例,从而启动了两个并发执行的线程。 Java线程还有其他的特性,比如线程的优先级,每个线程都有一个优先级...