二、垃圾收集 垃圾收集主要是针对堆和方法区进行。 程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。 判断一个对象是否可被回收 1. 引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加 1, ...
分类:
编程语言 时间:
2019-05-12 15:45:08
阅读次数:
149
一,线程的生命周期 新生状态 用new关键字建立一个线程后,该线程对象就处于新生状态。 处于新生状态的线程有自己的内存空间,通过调用start()方法进入就绪状态。 就绪状态 处于就绪状态线程具备了运行条件,但还没分配到CPU,处于线程就绪队列,等待系统为其分配CPU。 当系统选定一个等待执行的线程 ...
分类:
编程语言 时间:
2019-05-09 22:01:39
阅读次数:
129
一、线程的生命周期 进程与线程一样,都具有一定的生命周期,线程的生命周期包括四个状态:创建状态、就绪状态、阻塞状态、死亡状态。 1.创建状态 1)是指使用new实例化一个线程对象,但该线程对象还未使用start()方法启动线程这个阶段,该阶段只在内存的堆中为该对象的实例变量分配了内存空间,但线程还无 ...
分类:
编程语言 时间:
2019-04-12 23:30:33
阅读次数:
266
一:线程与进程 1. 进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元; 2.线程 : 进程的一个独立控制单元,进程不共享数据,线程可以共享数据 3多线程:使用并发原理,是多个线程呈现出共同运行的情况 二:线程的生命周期 1.新建:从线程被建立 ...
分类:
编程语言 时间:
2019-04-02 12:39:59
阅读次数:
177
线程(包括安全性和多线程等方面) 线程安全 1从原理来看(JMM(java内存模型)的设计) https://my.oschina.net/u/1778239/blog/1610185 https://my.oschina.net/u/1778239/blog/1613240 2具体的例子&线程安全 ...
分类:
其他好文 时间:
2019-03-30 01:16:04
阅读次数:
172
目录: 1. 进程和线程 2. 为什么使用多线程? 3. 多线程的创建方式 4. Runnable与Thread两种方式比较 5. start()与run()方法 6. 线程的生命周期/状态转换 7. 常用方法使用与解读 8. 线程的优先级 9. 守护线程 1、进程和线程 进程(Process)是计 ...
分类:
编程语言 时间:
2019-03-04 22:37:45
阅读次数:
236
一、线程的生命周期 1、线程的5种状态:新建(New),就绪(Runnable),运行(Running),阻塞(Blocked),死亡(Dead) 2、线程的生命周期图解:(参考传智播客刘意2015Java基础视频讲义) 二、线程的状态转换图 1、线程的5种状态:新建(New),就绪(Runnabl ...
分类:
编程语言 时间:
2019-03-02 15:59:04
阅读次数:
339
1、线程的生命周期:新建、就绪、运行、阻塞、死亡 2、运行状态线程进入阻塞: 1.1 调用sleep方法主动放弃; 1.2 调用线程的suspend方法将线程挂起,不推荐使用; 1.3 线程调用一个阻塞IO方法,直到方法返回之前,该线程将被阻塞; (处于阻塞状态的线程在合适的时候重新进入 就绪状态) ...
分类:
编程语言 时间:
2019-02-16 13:58:59
阅读次数:
222
ThreadLocal,即线程局部变量,用来为每一个使用它的线程维护一个独立的变量副本。这种变量只在线程的生命周期内有效。并且与锁机制那种以时间换取空间的做法不同,ThreadLocal没有任何锁机制,它以空间换取时间的方式保证变量的线程安全。 本篇从源码方面分析ThreadLocal的实现原理。 ...
分类:
编程语言 时间:
2019-02-15 15:21:32
阅读次数:
218