有三种方式可以停止线程 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止 使用stop方法强行终止(不推荐,方法已作 …
JAVA基础
发布于 2024-11-06
摘要
发布于 2024-11-06
摘要
共同点 wait() ,wait(long) 和 sleep(long) 的效果都是让当前线程暂时放弃 CPU 的使用权,进入阻塞 …
发布于 2024-11-06
摘要
线程状态之间是如何变化的 创建线程对象是新建状态 调用了start()方法转变为可执行状态 线程获取到了CPU的执行权,执行结束是 …
发布于 2024-11-06
摘要
单核CPU下线程实际还是串行执行的 操作系统中有一个组件叫做任务调度器,将cpu的时间片(windows下时间片最小约为 15 毫 …
发布于 2024-11-06
摘要
程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、 …
发布于 2024-11-06
摘要
在jdk1.7的hashmap中在数组进行扩容的时候,因为链表是头插法,在进行数据迁移的过程中,有可能导致死循环 比如说,现在有两 …
发布于 2024-11-06
摘要
计算对象的 hashCode() 再进行调用 hash() 方法进行二次哈希, hashcode值右移16位再异或运算,让哈希分布 …
发布于 2024-11-06
摘要
在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次每次扩容都是达到了扩容阈值( …
发布于 2024-11-06
摘要
判断键值对数组table是否为空或为null,否则执行resize()进行扩容(初始化) 根据键值key计算hash值得到数组索引 …
发布于 2024-11-05
摘要
底层使用hash表数据结构,即数组+(链表 | 红黑树) 添加数据时,计算key的值确定元素在数组中的下标 key相同则替换 不同 …