标签:
一、多线程的两种实现方式
1、继承Thread类,并重写其中的run()方法,run()方法被称为线程体。(由于Java只支持单继承,用这种方法定义的类不能再继承其他类)。使用时生成线程类的实例化对象,并调用其start()方法。
class MyThread extends Thread{ 属性... 方法... public void run(){ } }
MyThread mt1 = new MyThread(); mt1.start();
2、实现Runnable接口。实例化该实现类的对象作为线程的目标对象,在初始化一个Thread类或子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体。
class MyThread implements Runnable{ // 继承Thread类,作为线程的实现类 public void run(){ // 覆写run()方法,作为线程 的操作主体 } } MyThread mt = new MyThread() ; Thread t = new Thread(mt) ; t.start() ;
二、两种方法的比较
Thread类是Runnable接口的实现类。继承Thread不能实现资源共享,实现Runnable可以。实现接口可以避免单继承的局限性。
三、线程的常用操作方法
线程名称(getName,setName)
取得当前线程(currentThread)
判断线程是否执行完毕(isAlive)
线程强制运行(join)
线程的休眠(sleep)
线程的中断(interrupt)
守护线程(setDeamon)
线程的优先级(setPriority,getPriority)
9. 线程的礼让(yield)
四、线程的同步
解决资源共享的同步操作问题,保证多线程的数据安全(临界资源)。实现同步线程主要有两种方式,分别是同步代码块和同步方法。程序中过多的同步会导致死锁。
标签:
原文地址:http://www.cnblogs.com/An1994/p/5302895.html