
Java
文章平均质量分 78
Mying_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Synchronized理解与测试
Synchronized简单测试1.synchronized关键子说明对于操作系统进程来说,资源分配是很重要的一个问题,如果操作不当会造成多个进程抢占同一个资源,进而造成死锁,无限等待。线程同样无法避免这个问题,对于资源的控制与分配,Java提供了很多方法,Synchronzied是同步入门。(注:避免进程死锁的四个方法:互斥条件:每个资源同时只能有一个进程访问。请求与保持:一个进程因...原创 2019-07-03 10:38:21 · 471 阅读 · 0 评论 -
java线程概述
java线程概述1.进程进程是指程序的一次动态执行过程,或者进程是正在执行的程序,它占用着CPU和存储资源。2.并发并发是指两个或多个事件在同一时间间隔内发生。一个CPU为什么可以同时运行那么多的程序?这是宏观上的并发。例如,在0–1ms内运行A进程,在1–2ms内运行B进程,在2–3ms运行B进程,其实就是在很短的时间内交替执行,看上去是一起执行的。进程的基本状态(生命周期)(1)...原创 2019-06-28 16:07:21 · 181 阅读 · 0 评论 -
Java 线程sleep(),join(),yield()方法
Java 线程sleep(),join()方法sleep()方法是让线程“睡眠”(即停下来等待)所指定的一段时间,在睡眠结束后,线程立即恢复执行,参与竞争运行资源。参数long millis指定毫秒数,int nanos指定纳秒数。线程mThread1打印数字每打印一个数字休眠1s,mThread2打印字母每次休眠500mspackage teach;class mThread1 ex...原创 2019-06-30 20:24:53 · 397 阅读 · 0 评论 -
Java线程之wait(),notifyAll(),notify()
1.概述对于多线程来说,生产者—消费者模型是不可避免的问题。“宏观”来说生产者—消费者就是一边生产,一边消费,生产和消费同步。实际上是并发执行,一个线程执行一段时间。生产者生产完成后放入存储缓冲区,消费者从缓冲区拿走产品。那么问题来了:同时去竞争缓冲区资源会不会造成死锁?消费者如何知道缓冲区有没有资源?生产者如何知道缓冲区资源有没有满?对于问题1,Java的synchronized关...原创 2019-07-06 23:08:46 · 208 阅读 · 1 评论 -
JVM之内存区域划分
jvm之内存区域划分1.概述作为Java开发人员,对虚拟机是要了解一下的。虚拟机的作用是自动内存管理,不像C++一样让程序员去维护一个对象的生命开始到生命的结束。Java把内存的控制权全部交给了虚拟机,如果一旦出现内存泄露和溢出,怎么解决BUG ,了解虚拟机是有必要的。2.运行时的数据区域java虚拟机运行在操作系统的堆,Java程序运行在Java虚拟机上。上图绿色的区域是Java每一个...原创 2019-08-03 19:05:40 · 219 阅读 · 0 评论 -
JVM之内存回收策略(一)
JVM之内存回收策略1.概述jvm除了管理内存的分配还要担任起内存回收的任务。虚拟机栈、本地方法栈、程序计数器随着线程的诞生而诞生,也随着线程的结束而灭亡。但是堆和方法区是公有的。程序建立起来就一直存在,对于将不会使用的“垃圾”,如果不及时回收就造成内存的泄露和溢出。对于收集垃圾的任务,我们要解决三个问题:哪些内存需要回收?什么时候回收?怎样回收?2.哪些内存需要回收?这个问题就...原创 2019-08-04 11:30:25 · 272 阅读 · 0 评论 -
JVM之内存回收策略(二)
JVM之内存回收策略(二)1.概述前面回答了内存应该回收哪些对象。还有两个问题没有解决,内存怎么回收?内存何时回收?2.标记-清除算法标记-清除算法是最基础的垃圾回收方法。它的基本思想是:把垃圾都标记出来,然后统一回收。优点:实现简单。缺点:在空间上面,标记-清除之后的内存是碎片化的,对于给大对象分配内存时内存不足,提前进行一次垃圾回收。在时间上,标记和清除的效率都很低。3.复制算法...原创 2019-08-10 13:13:24 · 246 阅读 · 0 评论