线程

1线程通信

1让多个线程之间可以互相影响,多个线程共用的空间

2我们可以控制线程的等待和唤醒,wait()notify()notifyAll()

3这几个方法都必须用在锁的范围内,只对同步代码块有用

4当有多个线程处于等待状态时,notify只能随机唤醒一个

5锁只能唤醒被自己等待的线程

2ThreadLocal

线程本地变量

可以存储一个值,线程是隔离的当前线程存放的值其他线程无法获取

底层源来:一个以线程唯一标识为Key的map集合

3互斥锁

synchronize的升级版本,提供更加丰富的方法

目前给我们的只体现:一个锁可以有多个Condition用来等待唤醒不同的线程

比synchronize功能更加丰富,但是相对的代码的复杂度也有所提升

4线程的状态

新建 线程的出生创建Thread对象

就绪 线程可以执行,但没有获取到Cpu的执行权

运行 线程正在运行状态

休眠 线程处于停止状态,可以自动醒来不会释放锁

等待状态 线程陷入永久的等待(也可以只等待一段时间)释放锁,需要外力才能唤醒

锁池状态 等待中的线程被唤醒就会进入锁池状态,此时具有获取锁的资格,在获取锁之前不能运行

消亡 线程运行完毕,结束程序

5线程池

在初始化的时候先创建一批线程存储起来,等使用的时候直接从容器中获取

优点使用时节约了创建线程的时间,(线程的创建时间远远大于一般的对象)

线程池有多种,每种线程池都有特点

6线程组

多个线程进行分组管理便于操作

7Runtime 和Timer

Runtime 帮助我们运行操作系统的底层命令

Timer 计时器和定时器

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。