
多线程
NJAU张文军
永不放弃奔波的小蜗牛
展开
-
JAVA多线程并发--全
更多内容请关注:锁清秋JAVA多线程并发进程和线程的区别进程是资源分配的最小单位,线程是CPU调度的最小单位。Java进程和线程的关系Java对操作系统提供的功能进行封装,包括进程和线程运行一个程序会产生一个进程,进程包含至少—个线程每个进程对应一个JVM 实例,多个线程共享JVM里的堆Java采用单线程编程模型,程序会自动创建主线程主线程可以创建子线程,原则上要后于子线程完成执行进程和线程联系① 线程是进程的最小执行和分配单元,不能独立运动,必须依赖于进程,这也就可以说众原创 2020-05-08 23:03:49 · 1278 阅读 · 0 评论 -
Java垃圾回收机制
更多内容请关注:锁清秋Java垃圾回收机制内存区域中的 程序计数器、虚拟机栈、本地方法栈 这3个区域随着线程而生,线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈的操作,每个栈帧中分配多少内存基本是在类结构确定下来时就已知的。在这几个区域不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。而Java堆和方法区则不同,一个接口中的多个实现类需...原创 2020-04-29 02:48:30 · 243 阅读 · 0 评论 -
JAVA单例模式,这一篇就够了
单例模式一、使用单例模式的原因和方法原因:多个线程要操作同一对象,要保证对象的唯一性方法:实例化过程中只实例化一次二、单例模式三个主要特点:构造方法私有化;实例化的变量引用私有化;[ 有一个实例化的过程(只有一次),产生实例化对象 new ]获取实例的方法共有。[ 提供返回实例对象的方法 getInstace() ]三、评判单例模式的标准线程的安全性、性能、...原创 2020-04-11 20:55:10 · 684 阅读 · 0 评论 -
操作系统-进程与线程
操作系统-进程与线程进程与线程1. 进程进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。2. 线程线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。QQ 和浏...原创 2020-02-28 03:31:16 · 336 阅读 · 0 评论 -
操作系统-死锁
死锁什么是死锁?在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁”。发生死锁后若无外力干涉,这些进程都将无法向前推进。死锁、饥饿、死循环的区别死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF)算法中,若有源源不...原创 2020-02-28 03:29:44 · 275 阅读 · 0 评论 -
Volatile关键字实现原理
Volatile关键字实现原理1、认识volatile关键字程序举例用一个线程读数据,一个线程改数据存在数据的不一致性2、机器硬件CPU与JMM(1)CPU Cache模型程序的局部执行原理(2)CPU缓存的一致性问题解决方案:1)总线加锁(粒度太大)2)MESI()a. 读操作:不做任何事情,把Cache中的数据读到寄存器b. 写操...原创 2020-02-14 04:18:55 · 218 阅读 · 0 评论 -
并发:openjdk编译调试、java线程模型
并发:openjdk编译调试、java线程模型一 、 java当中的线程和操作系统的线程之间的关系1、关于操作系统的线程linux操作系统的线程控制原语int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (voi...原创 2020-02-14 04:18:07 · 196 阅读 · 0 评论 -
线程的同步
有关共享变量的理解可参考:深入分析Java中的关键字static一、多线程问题多个线程执行的不确定性引起执行结果的不稳定多个线程对账本的共享,会造成操作的不完整性,会破坏数据问题的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行。导致共享数据的错误。解决办法 :对多条操作共享数据的语句,只能让一个线程...原创 2020-02-14 04:16:50 · 142 阅读 · 0 评论 -
Java内存模型
Java内存模型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDpFiODZ-1581624919757)(/images/favicon.png)]1、线程和进程的区别进程与线程的一个简单解释1、 进程是执行着的应用程序,线程是进程中的执行单元。2、 进程是资源分配单元,线程是执行单元3、 进程之间相互独立,同一进程的线程共用进程资源。4、 进程间...原创 2020-02-14 04:15:51 · 140 阅读 · 0 评论 -
单例模式
单例模式一、使用单例模式的原因和方法原因:多个线程要操作同一对象,要保证对象的唯一性方法:实例化过程中只实例化一次二、单例模式三个主要特点:构造方法私有化;实例化的变量引用私有化;[ 有一个实例化的过程(只有一次),产生实例化对象 new ]获取实例的方法共有。[ 提供返回实例对象的方法 getInstace() ]三、评判单例模式的标准线程的安全性、性能、...原创 2020-02-14 04:15:03 · 124 阅读 · 0 评论 -
并发集合
并发集合问题?并发修改异常并发环境下,遍历的过程中不容许更新操作(增删改)如:package cn.njauit;import java.util.ArrayList;import java.util.List;/** * @author 张文军 * @Description: 并发修改异常 * @Company: njauit.cn * @version: 1.0...原创 2020-02-14 04:14:18 · 185 阅读 · 0 评论 -
线程概述
线程概述一、基本概念:程序 - 进程 - 线程程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process) 是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的线程(thread) ,进程可进一步细化为线程,是一个程序...原创 2020-02-14 04:13:26 · 128 阅读 · 0 评论 -
并发编程之-CAS-的原理
并发编程之 CAS 的原理一、什么是CAS: CAS(compareAndSwap),中文叫比较交换,一种无锁原子算法。过程是这样:它包含 3 个参数 CAS(V,E,N),V表示要更新变量的值,E表示预期值,N表示新值。仅当 V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做两个更新,则当前线程则什么都不做。最后,CAS 返回当前V的真实值。CAS 操作时抱着...原创 2020-02-14 04:12:33 · 278 阅读 · 0 评论 -
线程池
线程池概述例子: 10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。线程池的优势:线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。它的主要特点为:线...原创 2020-02-14 04:05:50 · 101 阅读 · 0 评论 -
JUC多线程及高并发
JUC多线程及高并发1、谈谈你对volatile的理解valtile 是JVM提供的一种轻量级的锁;保证可见性禁止指令重排不保证原子性2、JMM关于同步的规定:1.线程解锁前,必须把共享变量的值刷新回主内存。2.线程加锁前,必须读取主内存的最新值到自己的工作内存。3.加锁解锁是同一把锁。由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有...原创 2020-02-14 04:02:11 · 423 阅读 · 0 评论