安卓线程间通信,android主线程和子线程通信
博客来自:http://blog..net/liuxian13183,转载请注明出处!保留所有权利!
今天,我们来谈谈子线程和几类调度任务。
ScheduledExecutorService:
命令:执行的功能;延迟:执行后多长时间;单位:单位:延迟,通常是时间单位。秒(秒);
有一个schedule (runnable command,long delay,timeunitunit)方法:一次性事件,几秒钟后执行函数。
InitialDelay:多久之后;期间:执行持续时间
scheduleAtFixedRate(Runnable命令,long initialDelay,long period,TimeUnit单位):
循环执行函数:在initialDelay n *周期后执行,不规则。
scheduleWithFixedDelay(Runnable命令,长初始延迟,长延迟,时间单位单位):
循环执行功能:在初始延时后定期执行。
但是你也可以控制有多少线程循环通过executors . newscheduledthreadpool(10);方法控制。
您可以通过shutdown方法关闭循环。
计时器:
timer.schedule(任务、时间)
定时器可以定义什么时间或当前时间执行任务。
Timer可以定义何时或当前时间后多长时间执行任务。
同时,timer还有ScheduledExecutorService的后两种方法。
您可以通过cancel方法关闭计时器。
ThreadPoolExecutor:
ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime,unit,workQueue,handler)
CorePoolSize:线程池维护最小数量的线程。
MaximumPoolSize:线程池维护线程的最大数量。
KeepAliveTime:线程池维护线程允许的空闲时间。
单位:线程池维护线程所允许的空闲时间的单位。
工作队列:线程池使用的缓冲队列
Handler:线程池对被拒绝任务的处理策略。
通过threadpooleexecutor . execute(runnable);方法来联接要执行的线程。
当工作队列中有超过最大数量的线程时,通常有四种选择来使用handler处理被拒绝的任务:
ThreadPoolExecutor。AbortPolicy():抛出Java . util . concurrent . rejectedexecutionexception异常。
Threadpooleuxecutor。Callerrunselicy():重试添加当前任务,它会自动重复调用execute()方法。
Threadpooleuxecutor。DiscardOldestPolicy():放弃旧任务。
threadpooleexecutor . Discard policy():放弃当前任务。
请记住,runnable接口中的内容将始终被执行。
其他:
Handler和thread用于启动一个新线程,以减轻主线程的负担,或者可以用runOnUiThread(action)来代替。
今天我在这里,感觉很压抑。我们在屋里呆太久了,得找朋友出去玩!