- 博客(8)
- 收藏
- 关注
原创 并发编程:java线程池的五个状态
1 五个状态1.Running:运行态,也是线程池的默认状态,当new一个ThreadPoolExecutor实例之后,这个ThreadPoolExecutor的状态就是运行态。运行态能够接受新添加任务,也能够对阻塞队列中的任务进行处理。2.SHOTDOWN:关闭态,当调用ThreadPoolExecutor实例的showdown()方法之后,这个ThreadPoolExecutor实例就会进入关闭态。关闭态能够对阻塞队列中的任务进行处理,不能够接受新添加的非空任务,但是可以接受新添加的空任务。
2022-04-03 00:43:38
2730
原创 并发编程:java线程池
目录1 线程池的使用1.1 线程池的创建1.2 线程池的使用流程2 线程池的工作原理3 Java中自带的功能线程池3.1 定长线程池3.2 定时线程池3.3 可缓存线程池3.4 单线程化线程池4 总结1 线程池的使用1.1 线程池的创建线程池的真正实现类是ThreadPoolExecutorpublic ThreadPoolExecutor(int corePoolSize, int m
2022-03-31 23:54:32
587
原创 并发编程:JAVA线程篇
一.什么是并发编程同一时间段内多个线程运行,也就是所谓的处理器"同时"处理多个任务。"同时" :实际并不是同时处理,而是在操作系统的调度下交替执行。二.线程2.1 守护线程和用户线程在JAVA中线程分为守护线程和用户线程。用户线程:是独立存在的,不会因为其他用户线程退出而退出。守护线程:是依赖于用户线程,用户线程退出了,守护线程也就会退出,典型的守护线程如垃圾回收线程。默认情况下启动的线程是用户线程,可以使用Tread.setDeamon(true);注:必须在线程启动前设.
2022-03-31 19:44:30
358
原创 ArrayList 与 Vector 的区别
一.ArrayList 1.实现原理:采用动态对象数组实现,默认构造创建一个空对象数组; 2.第一次添加对象扩容为10,之后的扩容算法为1.5倍原数组大小; 3.不适合进行插入或删除操作; 4.为了防止数组扩容次数较多,建议创建时传入初始量参数; 5.线程不安全,适合单线程访问时使用; 6.JDK1.2引入。二.Vector 1.实现原理:采用动态对象数组实现,默认构造创建一个大...
2021-09-14 17:23:28
87
原创 Hashtable 和 HashMap 的区别
1.线程安全: Hashtable是线程安全的; HashMap是线程不安全的,要是高并发的场景可以使用ConcurrentHashMap。2.数组对象的引入不同: Hashtable用的是Entry类; HashMap在jdk1.8后用的是Node类。 3.数组初始化位置不同: Has...
2021-09-09 22:51:23
250
原创 双等于(==)与equals()的区别
1.当"=="去判断两个常用数据类型(byte,short,char,int,long,float,double,boolean)是否相等的时候,是直接比较值是否相等,即是判断他们在栈内存里面的指向是否一致;而判断引用数据类型时,则是判断两个对象在堆中的引用地址是否一致。2.equals()是Object类的一个方法Object类中equals()底层代码:public boolean equals(Object obj) { return (this == obj);
2021-08-25 11:15:45
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人