安卓线程间通信,android主线程和子线程通信

  安卓线程间通信,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)来代替。

  今天我在这里,感觉很压抑。我们在屋里呆太久了,得找朋友出去玩!

安卓线程间通信,android主线程和子线程通信