1、异常基类Throwable范围最大,包含程序异常Exception和JVM异常Error;
2、调用Exception类时,调用处必须使用try……catch捕捉异常;调用RuntimeException类时,可以不用捕捉异常,但最好使用;
3、实现多线程用继承Thread类时,必须覆写run方法;主方法不调用run()
方法,而是调用start()
,且同一个实例不能重复调用,但本质上还是调用的run方法;
Thread 类是实现了Runnable接口,且start方法只在Thread类;
在程序开发中只要是多线程肯定永远以实现Runnable接口为主;
实现Runnable接口相比继承Thread类有如下好处:
1、避免继承的局限,一个类可以继承多个接口。
2、适合于资源的共享。
4、虽然推荐使用Runnable接口,但是大部分的方法是存放在Thread 类中的;
Thread 类的主要方法:
a、public Thread(Runnable target)
接收Runnable接口子类对象,实例化Thread 对象;
b、public Thread(Runnable target,String name)
并设置线程名称;
c、public Thread(String name)
实例化Thread 对象,并设置线程名称;
!a~c是构造方法
d、public static Thread currentThread()
返回对当前正在执行的线程对象的引用;
e、public final String getName()
返回该线程的名称;
f、public final int getPriority()
返回线程的优先级;
g、public final boolean isInterrupted()
判断线程是否被中断;
h、public final boolean isAlive()
判断线程是否活动;
i、public final void join() throws InterruptedException
等待线程死亡;
j、public final synchronized void join(long millis) throws InterruptedException
等待mills毫秒后,线程死亡;
k、public void run()
执行线程;
l、public final void setName(String name)
设置线程名称;
m、public final void setPriority(int newPriority)
设置线程的优先值;
MIN_PRIORITY(1) < NORM_PRIORITY(5) < MAX_PRIORITY(10);
n、public static void sleep(long millis) throws InterruptedException
使正在执行的线程休眠mills毫秒;
o、public void start()
开始线程;
p、public String toString
返回代表线程的字符串;
q、public static void yield()
使线程暂停;
r、public final void setDaemon(boolean on)
使线程放在后台执行;
5、同步synchronized与死锁:
同步是实现在同一个时间段只能有一个线程运行;
同步代码块格式:synchronized(同步对象){代码块}
同步对象一般用this(当前对象)表示;
同步方法格式:synchronized 方法返回值 方法名称(参数列表)
;
同步有可能会产生死锁,即多个线程都在等待对方完成。
!!!日后专门记录多线程机制!!!