小白学java-基础篇(异常处理、多线程)

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 方法返回值 方法名称(参数列表)
同步有可能会产生死锁,即多个线程都在等待对方完成。
!!!日后专门记录多线程机制!!!

猜你喜欢

转载自blog.csdn.net/qq_29070549/article/details/79414933
今日推荐