2020年3月27日
摘要: 1.进程和线程还有协程之间的关系 进程:运行起来的程序。进程需要占用系统资源(内存,CPU)。进程是最小的系统资源分配单位,只是给线程提供执行环境。 由于一个进程产生一个进程地址空间,且进程地址空间相互独立,一个进程死亡,其他进程不会受到影响。 线程:LWP(light weight process 阅读全文
posted @ 2020-03-27 18:45 wnwn 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 简介 从JDK1.5,java使用新的JSR-133内存模型;JSR-133使用happens-before的概念来阐述操作之间的内存可见性;在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么者两个操作之间必须要存在happens-before关系;这里两个操作可以是在一个线程之内,也可以 阅读全文
posted @ 2020-03-27 13:57 wnwn 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 什么是指令重排序 java语言规范JVM线程内部维持顺序化语义,即只要程序的最终结果与它顺序化情况的结果相等,那么指令的执行顺序可以与代码逻辑不一致,这个过程就叫做执行重排序; 在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排序,重排序分为三种类型: 1.编译器优化的重排序:编译器在不改 阅读全文
posted @ 2020-03-27 13:43 wnwn 阅读(425) 评论(0) 推荐(0) 编辑
摘要: volatile的应用 在多线程并发程序中synchronized和volatile都扮演者着很重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性,能够防止脏读,被volatile关键字修饰的变量,如果值发生了改变,其他线程立刻可见; 可见性的意 阅读全文
posted @ 2020-03-27 13:27 wnwn 阅读(147) 评论(0) 推荐(0) 编辑