**
1.创建线程
在Android中,提供了两种创建线程的方法,一种是通过Thread类的构造方法创建线程对象,并重写run()方法实现,另一种是通过Runnable接口实现。
(1).通过Thread类的构造方法创建线程
Thread(Runnable runnable)
该构造方法的参数runnable,可以通过创建一个Runnable类的对象并重写其run()方法来实现,例如,你要创建一个thread的线程,可以使用如下代码:
Thread thread = new Thread(new Runnable(){
//重写run()方法
public void run(){
//要执行的操作
}
});
当线程被开启时,run()方法将会被执行
(2).通过实现Runnable接口实现创建线程
其语法格式如下:
public class ClassName Object implements Runnable
当一个类实现Runnable接口后,还需要实现其run()方法,在run()方法中,可以编写要实现的操作代码。
2.开启线程
创建线程对象后,还需开启线程,线程才能执行,Thread提供了start()方法,还可开启线程。
(); //开启线程
3.线程的休眠
线程的休眠就是指让线程暂停多长时间后再次执行,同Java一样,在Android中,也可以使用Thread的sleep()方法,让线程休眠指定的时间。
sleep(long time);//其中的参数time用于指定休眠的时间,单位是毫秒
例如:(1000);
4.中断线程
当需要中断指定线程时,可以使用Thread提供的interrupt()方法来实现,使用interrupt()方法可以向指定的线程发送一个中断请求,并将该线程标记为中断状态,
interrupt();
另外,由于当线程执行wait(),join()或者sleep()方法时,线程的中断状态将被清除,并且抛出InterruptedExpection异常,所以,如果在线程中执行力wait(),join()或者sleep()方法时,那么,中断线程时,就要使用一个boolean型的标记变量来记录线程的中断状态,并通过该标记变量来控制循环的执行与停止。
5.创建Handler对象发送并处理消息
(1). 在Android中,一个线程对应一个Looper对象,而一个Looper对象又对应一个MessageQueue(消息队列),MessageQueue用于存放Message(消息),在MessageQueue中,存放的消息按照FIFO(先进先出)原则进行。
(2). Looper对象用来为线程开启一个消息循环,用来操作MessageQueue,默认情况下,Android中新创建的线程是没有开启消息循环的,但是主线程除外,系统会自动为主线程创建Looper对象,开启消息循环,所以,当我们在主线程中,创建Handler对象时,就不会出错,而如果在新创建的非主线程中,在创建Handler对象时,就会有异常抛出。
(3).如果在非主线程中,创建Handler对象时,首先需要使用Looper类的Prepare()方法来初始化一个Looper对象,然后再创建这个Handler对象,再使用Looper类的loop()方法启动Looper,从消息队列里面获取和发送消息。
相关文章
- 通过实现Runnable接口创建,开启,休眠和中断线程。
- Java基础-多线程编程-1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
- 实验六 多线程编程 1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
- Demo18 :分别通过继承Thread和实现Runnable接口来获得线程
- 创建多线程的方式:继承Thread类和实现Runnable接口
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- 细说继承Thread类和实现Runnable接口来创建线程的区别
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- 创建线程的两种方式:继承Thread类和实现Runnable接口