首页 > 代码库 > Java高级复习㈠ 多线程

Java高级复习㈠ 多线程

1.线程

 也称为轻量级进程,每个线程有自己的堆栈、程序计数器、局部变量。与进程相比,进程中的线程之间隔离程度要小

2.Java实现

①implements Runnable

②extends Thread

一般推荐①

3.sleep()、yield()

sleep()方法对当前线程操作,指定以毫秒为单位的线程最小休眠时间,除非线程因中断提早恢复执行,否则不会在这段时间前恢复执行。线程可调用另一线程的interrupt()方法,向暂停的线程发出InterruptedException,变相唤醒暂停线程。

yield()方法使同优先级的线程获得执行机会,如果没有同优先级的可运行线程,yield()什么都不做

sleep()会给低优先级线程运行机会,yield()只给同优先级线程执行机会

4.join()

 当前线程与该线程合并

5.临界资源问题

①互斥锁 synchronized

②死锁

③wait()、notify()

 wait和sleep区别:wait会释放对象锁,sleep不会