Java并发编程
大数据最好
大数据,机器学习,深度学习
展开
-
java多线程介绍
文章目录一、什么是线程1. 什么是进程?2. 什么是线程?3. 进程和线程的区别?二、线程的优势1.发挥多处理器的强大能力2.建模的简单性3.异步事件的简化处理三、线程带来的风险1.线程安全性2.活跃性问题3.性能问题 一、什么是线程 要解释线程,我们首先要从进程说起。 1. 什么是进程? 进程是程序运行的一个实例,进程是系统分配资源的最小单位,每个进程都有各自的资源(内存空间等)。每个进...原创 2019-01-10 21:43:55 · 179 阅读 · 0 评论 -
线程安全性
一、线程安全性 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态访问。共享意味着变量可以由多个线程同时访问,可变意味着变量的值在其生命周期内可以发生变化。 当多个线程访问某个状态变量并且其中有一个线程执行写入操作时,必须采用同步机制来协同这些线程对变量的访问。java中的主要同步机制是关键字synchronized它提供了一种独占锁的方式,但“同步”这个...原创 2019-01-10 21:44:52 · 267 阅读 · 0 评论 -
synchronized关键字详解
一、synchronized关键字介绍 由于synchronized关键字的介绍涉及到锁的相关概念,下面我们先简单介绍下锁相关的一些知识。 java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。 java内置锁是一个互斥锁,这就是意...原创 2019-01-14 22:57:46 · 318 阅读 · 0 评论 -
java内存模型及volatile关键字
一、基本概念 在并发编程过程中,我们经常会遇到三类问题:原子性问题,可见性问题,有序性问题。下面我们来介绍一下和这些问题相关的三个概念。 1.原子性 也就是执行一个操作,要不全部执行成功,要不执行失败。比如a=0,这个操作就是原子性的,要么赋值成功,要么赋值失败。再比如a++操作,这个操作就不是原子性的,它是三步操作的组合:a)获取a的值。b)执行a=a+1操作。c)写入新的a的值 2.可见性 就...原创 2019-01-16 21:03:46 · 348 阅读 · 0 评论