后台线程的调用Thead

启动线程

List<ActionDevice> temDevice = new ArrayList<ActionDevice>();

ScheduleEexcuteThread SET=new ScheduleEexcuteThread(temDevice);

SET.start();

参数temDevice为需要操作的对象。

参数ActionDevice为实体类

线程ScheduleEexcuteThread需要继承Thread

public class ScheduleEexcuteThread extends Thread{

Logger log = Logger.getLogger(Class.class.getName());

public  List<ActionDevice>  Dealy = new ArrayList<ActionDevice>();

public  List<ActionDevice> tempDealy = new ArrayList<ActionDevice>();

Boolean stop=false;

public  ScheduleEexcuteThread(List<ActionDevice> dDealy){

this.Dealy=dDealy;

}

public void run(){

while(!stop){

for(ActionDevice adevice :Dealy){

//对不符合条件的对象加入临时list中

tempDealy.add(adevice);

}

Dealy.clear();

Dealy.addAll(tempDealy);

tempDealy.clear();

if(Dealy.size()==0){

this.stop=true;

}else{

try {

Thread.sleep();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

定义参数stop,当条件成熟时,设置stop=true;等待下一次线程启动时,会判断stop=true,之后进程结束。

ScheduleEexcuteThread SET=new ScheduleEexcuteThread(temDevice);

SET.start();

时间: 2024-12-12 13:57:50

后台线程的调用Thead的相关文章

GCD12 :创建并发线程 和 调用后台线程

问题: 你想在程序中运行单独的任务时,拥有最大的控制权.例如,你想要根据用户要求,来运行一个长计算请求,同时,主线程 UI 可以自由的与用户交互和做别的事情. 讨论: 在程序中使用线程: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSString *fileToDownload = @"http://www.

后台线程,优先级,sleep,yield

1.后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可获取的部分.当所有非后台线程结束时,程序也就 终止了,同时会杀死进程中所有后台线程.main()是一个非后台线程 设置后台线程:必须在启动线程之前调用setDaemon(true) 2.通过setPriority修改优先级,注意,优先级较低的线程仅仅是执行的频率较低 3.yield让步,例如,当你的工作已经做完,可以让其他的线程使用cpu,通过调用yield()方法.当调用此方法时,也只是在建议具有相同

后台线程(守护线程)

有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程”(Daemon Thread),又称为“守护线程”. 典型的后台线程是定时器”Timer"线程,他负责将固定的时间间隔发送给其他的线程. 后台线程经常用于任务结束时的善后处理.另外,后台线程的优先级要比其他的线程优先级低. 和后台线程相比,一般的线程称为“用户线程”.如果一个应用中只有后台线程在运行,JVM将退出该应用程序. 可以通过setDaemon(boolean d)来将一个普通的线程设置为后台线程.用

java 线程返回值,优先级,后台线程 示例代码

ava 线程返回值,休眠,优先级,后台线程  示例代码 package org.rui.thread.basic; import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Execu

C#前台线程与后台线程的区别和联系 (转)

.Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程.这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出:而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束. .net环境使用Thread建立的线程默认情况下是前台线程,即线程属性IsBackground=false,在进程中,只要有一个前台线程未退出,进程就不会终止.主线程就是一个前台线程.而后台线程不管

HandlerThread 创建一个异步的后台线程

使用HandlerThread几大优点: 1.制作一个后台异步线程,需要的时候就可以丢一个任务给它,使用比较灵活; 2.Android系统提供的,使用简单方便,内部自己封装了Looper+Handler机制; 3.可以代替Thread + Looper + Handler的写法; 4.可以避免项目中随处可见的 new Thread().start(),增加系统开销; 使用HandlerThread注意: 1.不要执行太耗时(一般情况不要超过100ms级别的)的任务,如果太耗时可能会阻塞其他的任务

【转载】Android中UI线程与后台线程交互设计的5种方法

原帖地址:http://www.cr173.com/html/19165_1.html 在android的设计思想中,为了确保用户顺滑的操作体验.一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必须要重新开启一个后台线程运行这些任务.然而,往往这些任务最终又会直接或者间接的需要访问和控制UI控件.例如访问网络获取数据,然后需要将这些数据处理显示出来.就出现了上面所说的情况.原本这是在正常不过的现象了,但是android规定除了UI线程外,其他线程都不可以对那些UI控件访问

【转】 Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask

目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 之前,我们直接在activity中执行http通信,在通信过程中可能会出现连接超时.socket超时等情况,超时阈值一般是秒级,例如AndroidHttpClient中设置的20秒,如果出现超时,就

Android 后台线程,timertask实现定期更新时间

简述:这是一类定时功能的原型,用来在后台线程中运行一些定时的服务,比如定时修改时间 知识点: 1. Android多线程的消息通信(handler) 2. Java中时间的获取,以及String的格式化(SimpleDateFormat) 3. Android PostDelay 的定期的实现 4. timertask实现定期更新 在这里我们就对于handler的方法,开一个新的Thread每隔3秒, 用来定时修改一个TextView的时间.对于timertask,道理也是一样的,调用sched