当前位置: 首页 > news >正文

新余市网站建设_网站建设公司_百度智能云_seo优化

互展科技网站建设,营销渠道策划方案,电商基地推广,怎么推广自己的网站原文地址#xff1a;http://android.xsoftlab.net/training/multiple-threads/run-code.html#StopThread 上节课我们学习了如何定义一个类用于管理线程以及任务。这节课将会学习如何在线程池中运行任务。要做到这一点#xff0c;只需要往线程池的工作队列中添加任务即可。当…原文地址http://android.xsoftlab.net/training/multiple-threads/run-code.html#StopThread 上节课我们学习了如何定义一个类用于管理线程以及任务。这节课将会学习如何在线程池中运行任务。要做到这一点只需要往线程池的工作队列中添加任务即可。当一条线程处于闲置状态时那么ThreadPoolExecutor会从任务队列中取出一条任务并放入该线程中运行。 这节课还介绍了如何停止一个正在运行中的任务。如果在任务开始后可能发现这项任务并不是必须的那么就需要用到任务取消的功能了。这样可以避免浪费处理器的时间。举个例子如果你正从网络上下载一张图像如果侦测到这张图像已经在缓存中了那么这时就需要停止这项网络任务了。 在线程池中的线程内运行任务 为了在指定的线程池中启动一项线程任务需要将Runnable对象传给ThreadPoolExecutor的execute()方法。这个方法会将任务添加到线程池的工作队列中去。当其中一个线程变为闲置状态时那么线程池管理器会从队列中取出一个已经等待了很久的任务然后放到这个线程中运行 public class PhotoManager {public void handleState(PhotoTask photoTask, int state) {switch (state) {// The task finished downloading the imagecase DOWNLOAD_COMPLETE:// Decodes the imagemDecodeThreadPool.execute(photoTask.getPhotoDecodeRunnable());...}...}... } 当ThreadPoolExecutor启动一个Runnable时它会自动调用Runnable的run()方法。 中断执行中的代码 如果要停止一项任务那么需要中断该任务所在的线程。为了可以预先做到这一点那么需要在任务创建时存储该任务所在线程的句柄 class PhotoDecodeRunnable implements Runnable {// Defines the code to run for this taskpublic void run() {/** Stores the current Thread in the* object that contains PhotoDecodeRunnable*/mPhotoTask.setImageDecodeThread(Thread.currentThread());...}... } 我们可以调用Thread.interrupt()方法来中断一个线程。这里要注意Thread对象是由系统控制的系统会在应用进程的范围之外修改它们。正因为这个原因在中断线程之前需要对线程的访问加锁。通常需要将这部分代码放入同步代码块中 public class PhotoManager {public static void cancelAll() {/** Creates an array of Runnables thats the same size as the* thread pool work queue*/Runnable[] runnableArray new Runnable[mDecodeWorkQueue.size()];// Populates the array with the Runnables in the queuemDecodeWorkQueue.toArray(runnableArray);// Stores the array length in order to iterate over the arrayint len runnableArray.length;/** Iterates over the array of Runnables and interrupts each ones Thread.*/synchronized (sInstance) {// Iterates over the array of tasksfor (int runnableIndex 0; runnableIndex len; runnableIndex) {// Gets the current threadThread thread runnableArray[taskArrayIndex].mThread;// if the Thread exists, post an interrupt to itif (null ! thread) {thread.interrupt();}}}}... } 在多数情况下Thread.interrupt()会使线程立刻停止。然而它只会将那些正在等待的线程停下来它并不会中止CPU或网络任务。为了避免使系统变慢或卡顿你应当在开始任意一项操作之前测试是否有中断请求 /** Before continuing, checks to see that the Thread hasnt* been interrupted*/ if (Thread.interrupted()) {return; } ... // Decodes a byte array into a Bitmap (CPU-intensive) BitmapFactory.decodeByteArray(imageBuffer, 0, imageBuffer.length, bitmapOptions); ...
http://www.lebaoying.cn/news/114557.html

相关文章:

  • 学科专业网站建设电商运营公司
  • 国内有哪些响应式网站wordpress调用外链图片
  • wix做网站教程前端页面设计
  • 建设网站域名备案查询美食网站建设目的
  • 做网站的公司倒闭没有数据怎么做网站
  • 新都区网站建设网站怎么做可以被收录
  • 一站式媒体发稿平台网站建设发布教程视频
  • dw可以做有后台的网站么做微商去哪个网站推广
  • 宁夏网站建设品牌公司wordpress数据名
  • 长治网站制作小程序卡当网站建设
  • 织梦可以仿所有网站吗wordpress groupon
  • 网站编程 外包类型精品资料网资料大全
  • 陕西建设厅执业注册中心网站seo基础理论
  • 家具网站开发目的广州seo工作
  • 网站建设 安庆公司电脑为什么有的网站打不开
  • 泉州网站建设工程wordpress 的图片保存在哪
  • 网站栏目内链怎么做全网关键词优化公司哪家好
  • 流行的网站建设技术有哪些在门户网站管理建设工作讲话
  • 建设银行网站流水账单怎么打常德海关网站
  • 网上发布信息的网站怎么做的怎么看一个网站是什么程序做的
  • php 网站后台模板网站实名认证怎么做
  • 担保交易网站开发国外网站流量查询
  • 开发公司移留问题解决物业如何打报告妇科医院网站优化服务商
  • 广东专业的网站制作做视频网站需要
  • 网站打开9块9 wordpress
  • 网站开发的后期维护正规网站开发文案
  • 集约化网站建设管理东营优化网站
  • 现在做网站用什么程序郑州做网站需要多少钱
  • 网站建设需求公司内部调查软件详细设计包括哪些内容
  • php做网站项目的流程电子商务网站建设作业案例