zoukankan      html  css  js  c++  java
  • Android Thread 常用方法

    前言

    本文简记 Android 的 Thread 线程常用方法。

    由于在 Android 中,要实现调用 HTTP 的 API 等等功能,都要在子线程中进行。所以,掌握 Thread 线程常用方法是必须的。

    实现 Thread 的三种方法

    继承 Thread 类

    • 简单的写法:

      new Thread() {
      	@Override
      	public void run() {
      		super.run();
              // TODO : do something...
      	}
      }.start();
      
    • 继承的子类示例:

      class ThreadThread extends Thread {
      	@Override
      	public void run() {
      		super.run();
      		// TODO : do something...
      	}
      }
      
    • 实现的子类声明示例:

      ThreadThread threadThread = new ThreadThread(); 
      

    实现 Runable 接口

    • 简单的写法:

      new Thread(new Runnable() {
      	@Override
      	public void run() {
      		// TODO : do something...
      	}
      }).start();
      
    • 实现的子类示例:

      class RunnableThread implements Runnable {
      	@Override
      	public void run() {
      		// TODO : do something...
      	}
      }
      
    • 实现的子类声明示例:

      Thread refreshThread = new Thread(new RefreshThread());
      

    实现 Callable 接口

    • 简单的写法:

      new Thread(String.valueOf(new Callable<String>() {
      	@Override
      	public String call() throws Exception {
      		// TODO : do something...
      		return null;
      	}
      })).start();
      
    • 实现的子类示例:

      class CallableThread implements Callable<String> {
      	@Override
      	public String call() throws Exception {
      		// TODO : do something...
      		return null;
      	}
      }
      
    • 实现的子类声明示例:

      FutureTask<String> task = new FutureTask<String>(new CallableThread());
      Thread callableThread = new Thread(task);
      

    常用方法

    这里的方法只以继承或实现 Thread 的子类为例。

    启动线程 start()

    • 示例:

      refreshThread.start();
      

    中断线程 interrupted()

    • 示例:

      refreshThread.interrupted();
      

    休眠线程 sleep()

    • 示例:

      refreshThread.sleep(1000); // 单位:毫秒
      

    等待线程 join()

    • 示例:

      refreshThread.join(); // 等待线程结束
      或者
      refreshThread.join(1000); // 最长等待事件,单位:毫秒
      
  • 相关阅读:
    Mysql 怎么限制 IP 访问?
    LA2965 n个数中选出最多个数异或和为0
    UVALive 2678 大于s的最短子序列和
    UVA 1193 区间相关(greedy)
    UVA 11992 线段树
    UVA 1400 线段树
    NBUT 1120 线段树
    最大连续区间和的算法总结(转)
    hiho 1015 KMP
    hiho#1128 : 二分·二分查找
  • 原文地址:https://www.cnblogs.com/Yogile/p/13270068.html
Copyright © 2011-2022 走看看