![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程池
Lvshen的技术小屋
技术宅
展开
-
线程的几种状态你真的了解么
线程状态介绍 这里我们讲的是Java中的线程状态。 线程状态如下: “ 线程初始状态:NEW 线程运行状态:RUNNABLE 线程阻塞状态:BLOCKED 线程等待状态:WAITING 超时等待状态:TIMED_WAITING 线程终止状态:TERMINATED ” 其中等待状态应该是一个比较复杂且重要的状态。 线程进入等待状态,即线程因为某种原因放弃了CPU使用权,阻塞也分为几种情况: 等待阻塞:运行的线程执行wait方法,JVM原创 2020-09-10 08:24:00 · 179 阅读 · 0 评论 -
Java并发编程思维导图-究极版
思维导图见文末~ Java内存模型(JMM) 线程通信机制 内存共享 Java采用 消息传递 内存模型 重排序 重排序在多线程环境下可能会导致数据不安全 在单线程环境下不能改变程序运行的结果 存在数据依赖关系的不允许重排序 为了程序的性能,处理器、编译器都会对程序进行重排序处理 条件 问题 顺序一致性 一个线程中的所有操作必须按照程序的顺序来执行 所有线程都只能看到一个单一的操作执行顺序,不管程序是否同步 每个操作都必须原子执行且立刻对所有线程可见 多线程环境下的理论参考模型 为程...原创 2020-09-09 21:08:05 · 317 阅读 · 0 评论 -
手写线程池
线程成本 首先我们需要了解线程是不是越多越好? 1、线程在Java中是一个对象,每一个Java线程都需要一个操作系统线程支持。线程创建、销毁需要时间。如果创建时间+销毁时间>执行任务时间就很不合算。 2、Java对象占用堆内存,操作系统线程占用系统内存,根据JVM规范,一个线程默认最大栈大小1M,这个栈空间是需要从系统内存中分配的。线程过多,会消耗很多的内存。 从上面我们知道,线程创建,销毁需要时间,线程创建需要占用系统内存。线程的存在是有成本的,这就要看这个成本会不会影响系统性能了。原创 2020-09-06 22:38:51 · 111 阅读 · 0 评论