【Java并发编程的艺术学习】第四章摘要补全

本文详细介绍了Java线程的基本概念,如线程状态、类的设计、wait/sleep区别,以及线程间的通信方法(共享变量和notify/wait)。此外,还探讨了ThreadLocal的工作原理和线程池的使用,包括其接口方法、配置参数如核心线程数、最大线程数等。
摘要由CSDN通过智能技术生成

压栈:拷贝一个方法压入栈

1.线程的状态

新建,就绪,运行,等待,阻塞,死亡

2.一个类里可以定义多个类,但是只能有一个是public类的

3.进入等待队列的进程要是没人唤醒,那么会一直等待,不会执行

4.wait和sleep的区别

都是立刻让出CPU 

wait:释放cpu,释放锁

sleep:不释放锁,其他线程没有资格执行

5.如何查看线程信息

jstack命令

6.线程间的通信:

内存中共享变量

7.notify()以及wait()

notify():唤醒

wait():等待,使用wait方法需要先获得该对象的锁

两者配合使用

8.如何通过jion控制线程执行顺序

9.ThreadLocal

实现方式:底层使用虚引用

实现原理:每个线程使用都会拷贝一份

10.线程池作用

对线程有一个很好的管理

11.线程池这个类中包含几个方法

public interface ThreadPool<Job extends Runnable>{
    //执行一个job,这个job需要实现runnable
    void execute(Job job);
    //关闭线程池
    void shutdown();
    //增加工作者线程
    void addWorkers(int num);
    //减少工作者线程
    void removeWorker(int num);
    //得到正在等待执行的任务数量
    int getJobSize();
}

12.线程池一般都有什么配置

核心线程数:队列没有满时。最初提交一个任务,该线程就处于一直运行状态(即使此时已经没有任务了),提交第二个任务时,如果此时已开启的线程数小于核心线程数,无论此时其他线程是否空置,都会创建新的线程

最大线程数

队列

超时时间

时间单位

拒绝策略:队列满了,最大线程数仍然处理不过来就需要开启该策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值