王洪博's blog

身体和灵魂总要有一个在路上


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • (灬ºωº灬)♡

  • 公益

  • 搜索

Java多线程-08之-线程Join

发表于 2018-07-22 | 评论数: | 热度: ℃   |   字数统计: 862字   |   阅读时长: ≈ 3分钟

join()介绍join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。通过例子来理解: // 主线程public class Father extends Thread { public void run() { Son s = new Son(); ...

阅读全文 »

Java内存模型-理解final

发表于 2018-07-17 | 评论数: | 热度: ℃   |   字数统计: 2.4k字   |   阅读时长: ≈ 8分钟

概述与锁和 volatile 相比较,对 final 域的读和写更像是普通的变量访问。对于 final 域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个 final 域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 初次读一个包含 final 域的 ...

阅读全文 »

Java内存模型-理解锁

发表于 2018-07-15 | 评论数: | 热度: ℃   |   字数统计: 2k字   |   阅读时长: ≈ 7分钟

锁的happens-before关系锁是 java 并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。 class MonitorExample { int a = 0; public synchronized void writer ...

阅读全文 »

Java内存模型-顺序一致性模型

发表于 2018-07-14 | 评论数: | 热度: ℃   |   字数统计: 1.9k字   |   阅读时长: ≈ 6分钟

顺序一致性保证当程序未正确同步时,就会存在数据竞争。java 内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。 当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程 ...

阅读全文 »

Java内存模型-指令重排序

发表于 2018-07-13 | 评论数: | 热度: ℃   |   字数统计: 1.8k字   |   阅读时长: ≈ 6分钟

数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个变量。 写后写 a = 1;a = 2; 写一个变量后,再写这个变量。 ...

阅读全文 »

设计模式-抽象工厂模式

发表于 2018-07-12 | 评论数: | 热度: ℃   |   字数统计: 1.8k字   |   阅读时长: ≈ 7分钟

模式定义抽象工厂模式,即Abstract Factory Pattern,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类;具体的工厂负责实现具体的产品实例。 主要作用允许使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么,这样就可以从具体产品中被解耦。 ...

阅读全文 »

Java内存模型-理解Volatile

发表于 2018-07-12 | 评论数: | 热度: ℃   |   字数统计: 3.1k字   |   阅读时长: ≈ 11分钟

volatile特性当声明共享变量为 volatile 后,对这个变量的读 / 写将会很特别。理解 volatile 特性的一个好方法是:把对 volatile 变量的单个读 / 写,看成是使用同一个监视器锁对这些单个读 / 写操作做了同步。如下示例代码: class VolatileFeature ...

阅读全文 »

Java内存模型-基础学习

发表于 2018-07-08 | 评论数: | 热度: ℃   |   字数统计: 2.9k字   |   阅读时长: ≈ 10分钟

并发编程模型分类在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写 - 读 ...

阅读全文 »

Java多线程-07之-线程休眠

发表于 2018-07-07 | 评论数: | 热度: ℃   |   字数统计: 689字   |   阅读时长: ≈ 3分钟

sleep()介绍sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间;在线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。 sleep()示例package m ...

阅读全文 »

设计模式-工厂方法模式

发表于 2018-07-05 | 评论数: | 热度: ℃   |   字数统计: 1.6k字   |   阅读时长: ≈ 6分钟

模式定义工厂方法模式,又称工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。 主要作用将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,即由子类来决定应该实例化(创建)哪一个类。 解决的问题解决简单工厂模式一旦需要生产新 ...

阅读全文 »
1…91011…15
王洪博

王洪博

149 日志
46 分类
41 标签
RSS
GitHub E-Mail QQ 微信
友情链接
  • Eirunye
  • 程晓明
© 2019 – 2020 ©2019 by 王洪博 | 站点总字数: 1.1m | 站点阅读时长 ≈ 16:35
0%