`
寻梦者
  • 浏览: 635623 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android中的守护线程

阅读更多

 

package com.woyo.test;

/**
 * @author antty
 * @date:2011-5-27
 * 
 */
public class ThreadTest {

	private static boolean isStop;
	
	public static void main(String[] args) {
		startThread();
		try {
			Thread.sleep(5000);
			isStop = true;
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		System.out.println("end===thread");
	}

	public static void startThread(){
         Thread   thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
				
				startNewThread();
				
				while (true) {

					if(isStop){
						break;
					}
					
					try {
						Thread.currentThread().sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}

					System.out.println("=========main thread:" + System.currentTimeMillis());
				}
              System.out.println("===end");
			}
	});
         thread.start();
   }

	public static void startNewThread() {
		Thread test = new Thread(new Runnable() {

			@Override
			public void run() {
				while (true) {
					try {
						Thread.currentThread().sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}

					System.out.println("=========maintest thread:" + System.currentTimeMillis());
				}
			}
		});
		//test.setDaemon(true);
		test.start();
	}
}

 

daemon Thread 守护线程,Java中可以这样认为:守护主线程(main thread)的线程,与main thread同生共死。默认创建的线程是不是守护线程,要看创建它的线程(父线程)是否守护线程,它与父线程一致。main线程不是守护线程。

所以大部分,我们使用的创建的不是守护线程,想要让它成为守护线程,用thread.setDaemon(true)。这样它就与main同生共死了。main退出的时候,它也终止了(不管是否完成)。

 

理解有误,其实应该理解为当说有的非守护线程都执行完了,守护线程才终止

 

 

 

thread.setDeamonDaemon(true)---->守护线程

分享到:
评论

相关推荐

    守护线程确保pushService

    在Android应用开发中,"守护线程确保pushService"是一个重要的技术实践,主要目的是确保即使在主应用程序进程被系统回收或者用户关闭后,仍然能够保持某些关键服务的运行,例如推送服务。这样的做法对于实时性要求高...

    NDK20_线程轮询实现双进程守护

    在Linux系统下,如果使用sigaction将信号SIGCHLD的sa_flags中的SA_NOCLDSTOP选项打开,当子进程停止(STOP作业控制)时, 不产生此信号(即SIGCHLD)。不过,当子进程终止时,仍旧产生此信号(即SIGCHLD)。 3....

    android主线程、子线程及线程间通信方式测试app

    所有与界面相关的操作都必须在主线程中执行,如果在其他线程中进行,会导致ANR(Application Not Responding)错误。主线程主要职责包括:处理用户点击事件、更新UI、解析XML布局等。 2. **子线程**:为了实现耗时...

    Android&Java的线程框架与模式_高焕堂_PDF.rar

    此外,还讨论了守护线程(Daemon Threads)和线程优先级等概念。 第二章“Java线程详解”(Thread_Ch02_JavaThread_ok.pdf)深入探讨了Java平台下的线程机制,包括线程间的通信和协作,如wait()、notify()和...

    android守护进程

    创建Android守护进程主要包括以下步骤: 1. 创建一个新的Service子类:首先,我们需要继承自Android的Service类,并重写其关键方法,如onCreate()、onStartCommand()等。这是基础服务的起点。 2. 实现守护进程逻辑...

    JAVA中的线程知识点整理

    - **守护线程**:通过`Thread.setDaemon(true)`将线程标记为守护线程,守护线程在所有非守护线程结束后自动终止。一般用于后台服务,如垃圾回收。 6. **线程同步与通信** - **同步**:使用`synchronized`关键字...

    Android双进程守护不会被杀死

    5. 使用IntentService或者单独的线程处理服务中的任务,避免阻塞UI线程。 这种双进程守护机制虽然可以提高服务的存活率,但也需要注意几点:过度使用可能会导致系统资源过度消耗,影响用户体验;同时,由于涉及到跨...

    Android中利用服务来守护进程

    我们写程序的时候,肯定会用到Service,而且还不止使用一个。当我们的程序中用到了Service的时候,说不定会被停掉。例如像360这样的杀毒软件可能...那么我们就需要对我们的Service进行一个保护,也就是这里所说的守护。

    线程管理工具类

    在线程管理工具类中,建造者模式可以用来配置线程的属性,比如优先级、守护状态等,使得代码更加清晰,更具可读性。例如,通过`ThreadManager.Builder`链式调用来设置参数,最后通过`build()`方法创建一个配置好的...

    android 基于aidl实现的守护进程

    综上所述,基于AIDL实现的Android守护进程服务能够为应用程序提供持久后台运行的能力,但同时也需要考虑到系统资源的合理利用和用户体验。在设计和实现时,必须谨慎处理进程间通信、生命周期管理和资源管理等问题,...

    Android通过JNI实现守护进程

    总结来说,通过JNI在Android中实现守护进程,可以确保服务在后台持续运行,即使主进程被关闭,守护进程仍然可以监控并重启Service。这种方法虽然复杂,但可以有效地解决应用被强制关闭的问题,尤其在面对Android 5.0...

    android JNI进程守护service

    "JNI守护Service"的实现思路是:在Java层启动一个子线程,该线程通过JNI调用C/C++代码,创建一个新的子进程。这个子进程的任务就是监听主进程的生死状态。当检测到主进程死亡时,子进程将启动一个新的Service。这里...

    Android Thread

    4. 如果需要,可以通过`pthread_join`函数等待线程结束或使用`pthread_detach`让线程成为守护线程。在适当的时候,记得释放资源,如使用`pthread_exit`或`pthread_cancel`。 三、注意事项 - 使用JNI创建线程时,...

    [Android商业软件开发全程实战-以手机守护神为例].王家林.扫描版

    7. **多线程与异步处理**:在Android中,主线程负责UI操作,而耗时任务应在其他线程中执行,以避免阻塞UI。AsyncTask、Handler、Looper等工具可以帮助我们实现这一目标。 8. **网络编程**:Android应用常常需要访问...

    Android双进程序守护,应用维护_Java_下载.zip

    5. **IntentService**:一个特殊的Service,它会在单独的工作线程中处理Intent,处理完成后自动停止。在双进程守护中,IntentService可用来启动或重启Service,避免阻塞主线程。 6. **权限设置**:为了在设备启动时...

    守护进程(互相监听)

    在Android系统中,由于其基于Linux内核,也支持守护进程的概念,但实现方式略有不同。 标题"守护进程(互相监听)"可能指的是两个守护进程之间进行通信和监控的场景,这种设计可以确保即使一个守护进程出现问题,另...

    Android Telephony架构分析

    - **线程**:RIL守护进程内部通过多个线程来处理不同的任务,例如处理请求、接收响应、错误处理等。 - **通信机制**:RIL守护进程与RIL驱动之间通过共享内存或socket进行通信。通信过程包括发送命令、接收响应等基本...

    android ndk pthread

    主线程可以通过`pthread_join()`等待某个子线程结束,或使用`pthread_detach()`使线程成为守护线程,自动清理资源。 在Android中使用`pthread`时,还有一些特殊注意事项: - 应用程序必须在`Android.mk`文件中链接...

Global site tag (gtag.js) - Google Analytics