-
多线程
-
1、概念
-
程序:为完成特定任务,用某种语言编写的一组指令的集合
-
进程:程序的1次执行过程,是操作系统调度和分配的最小单位
-
线程:进程的进一步细化,是程序内部的一条执行路径,是cpu调度和执行的最小单位
-
-
2、如何创建多线程
-
方式1:继承Thread类,重写run()方法
-
方式2:实现Runnable接口
-
方式3:实现Callable接口,重写call()方法,实现类--》FutureTask--》Thread
-
方式4:使用线程池
-
-
3、Thread类的常用方法、线程的生命周期
-
1、线程常用的构造器(4个)
-
1、public Thread()
-
2、public Thread(String name)
-
3、public Thread(Runnable target)
-
4、public Thread(Runnable target,String name)
-
-
2、线程常用方法
-
1、start()启动线程,调用线程的run()方法
-
2、run() 线程要执行的逻辑操作,声明在run中
-
3、currentThread() 获取当前执行代码的线程
-
4、sleep(long mills) 使当前进程睡眠指定毫秒数
-
5、yield() 释放线程的CPU执行权
-
6、join() 在线程a中调用线程b调用join,意味着线程a进入阻塞状态,直到线程b执行结束,线程a才结束阻塞状态,继续执行
-
7、wait() 使线程等待
-
-
3、wait和sleep的区别
(1)sleep是Thread的静态方法;wait是Object的方法,任何对象实例都能调用(2)sleep不会释放锁,也不占用锁;wait会释放锁,前提是当前线程占有锁(即代码块要在synchronized中) (3)它们都可以被interrupt方法中断
-
-
4、如何解决线程安全问题
-
1、多个线程共享数据操作,就有可能出现安全问题
-
2、解决方案
-
同步机制synchronized(重点关注共享数据及操作共享数据的代码、同步监视器保证唯一)
-
1、同步代码块
-
2、同步方法
-
-
Lock接口及其实现类
-
-
-
5、同步机制相关问题
-
1、懒汉式的线程安全写法
-
2、同步机制带来死锁问题,产生的条件及规避
-
-
6、线程间的通信
-
在同步机制下,考虑线程间的通信
-
wait()、notify()、notifyAll()都需要使用在同步代码块或同步方法中
-
-
java多线程系列--基础篇
于 2023-08-18 22:25:14 首次发布