Java学习 · 初识 多线程

多线程

1. 基础概念

a)     程序 Program

                  i.           静态代码,指令集,应用程序执行的蓝本

b)    进程 Process

                  i.           动态概念,正在运行的程序,有地址空间,操作系统任务调度

                ii.           特点

  1. 动态性
  2. 并发性
  3. 独立性

c)     线程 Thread

                  i.           在进程内多条执行路径

                ii.           轻量级进程

              iii.           一个进程中运行多个线程,完成不同任务,称为多线程

d)   

  1. 2.   线程的创建

a)     继承Thread + 重写run方法

                  i.          

b)    实现Runnable接口 + 实现Run接口

                  i.           使用静态代理

  1. 创建真实角色
  2. 创建代理角色,Thread + 真实角色的引用
  3. 代理角色.start

                ii.           两种区别

              iii.           常用方法

              iv.           另一种实现

  1. 通过Callable接口实现多线程

a)    

b)    思路

                                                 i.           创建 Callable实现类+重写call

                                               ii.           借助 执行调度服务 ExecutorService,获取Future对象

                                              iii.           获取值 result.get()

                                              iv.           停止服务 ser.shutdownNow();

                                                v.          

  1. 线程状态

a)    

b)    停止线程

                  i.           Void interrupt()

  1. 发送中断请求
  2. 如果被Sleep调用阻塞,抛出异常

                ii.           Static Boolean interrupted()

  1. 测试当前线程是否被中断
  2. 副作用:将当前线程的状态重置为false

              iii.           Boolean isInterupte()

  1. 没有副作用

              iv.           Static Thread currentThread()

  1. 返回代表当前执行线程的Thread线程
  1. 同步:并发,多个线程访问同一份资源,确保资源安全  -->线程安全

a)     关键字synchronized

                  i.           同步块 synchronized

                ii.           同步方法 synchronized

  1. 5.   死锁:过多的同步引发

a)     解决:生产者消费者模式

                                          i.       信号灯法

                                        ii.       一、 wait() :等待,释放锁   sleep 不释放锁

                                       iii.       二、notify()/notifyAll():唤醒

              iv.             与 synchronized 一起使用

猜你喜欢

转载自www.cnblogs.com/secoding/p/9497863.html