摘要: 参照:https://www.jianshu.com/p/2f209af80f84 常量池: Java代码被编译成class文件时,会生成一个常量池(Constant pool)的数据结构,用以保存字面常量和符号引用(类名、方法名、接口名和字段名等)。 通过命令javap -verbose查看cla 阅读全文
posted @ 2018-03-15 23:48 战斗的小白 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 深入理解java虚拟机: 1、java内存模型 java虚拟机规范中试图定义一种Java内存模型。Java Memory Model(JMM) 1.1 主内存与工作内存 java内存模型规定所有的变量都存储在主内存中(Main Memory)中。 每个线程还有自己的工作内存(working Memo 阅读全文
posted @ 2018-03-15 21:15 战斗的小白 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 两种线程的调度模式: 抢占式调度: 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。 协同式调度: 协 阅读全文
posted @ 2018-03-15 18:05 战斗的小白 阅读(3878) 评论(0) 推荐(0) 编辑
摘要: 线程池优点: 1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,线程可以不需要等到线程创建就能立刻执行。 3、提高线程的可管理性。线程是稀缺资源,如果无限的创造,不仅会消耗系统资源,还会降低系统的稳定性。使用线程池进行统一的分配,调优和监控。 阅读全文
posted @ 2018-03-15 17:37 战斗的小白 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 并发编程的目的是为了让程序运行的更快,但并不是启动更多的线程就能让程序最大限度地并发执行。 在进行并发编程时,会面对很多问题:上下文的切换、死锁、受限硬件和软件的资源限制问题。 什么事上下文的切换 即使是单核的cpu也支持多线程执行代码,CPU通过给每个线程分配CPU资源来实现这个机制。时间片是CP 阅读全文
posted @ 2018-03-15 11:09 战斗的小白 阅读(687) 评论(0) 推荐(0) 编辑