并发编程(七):线程的生命周期

1.线程生命周期模型1.1.通用的线程生命周期模型1.2.Java中线程的生命周期2.线程状态的转换2.1.RUNNABLE与BLOCKED的状态转换2.2.RUNNABLE与WAITING的状态转换2.3.RUNNABLE与TIMED_WAITING的状态转换2.4.从NEW到RUNNABLE状态

并发编程(六):管程

1.是什么2.MESA模型2.1.解决互斥问题2.2.解决同步问题wait() 的正确姿势2.3.Hasen 模型、Hoare 模型和 MESA 模型的核心区别2.4.何时使用notify()2.5.Java内置的管程-synchronized1.是什么Java1.5之前,提供的唯一并发语言就是管程

并发编程(五):安全性、活跃性以及性能问题安全性、活跃性以及性能问题

1.安全性问题2.活跃性问题2.1.死锁2.2.活锁2.3.饥饿3.性能问题1.安全性问题概念:线程安全,就是正确性,正确性就是程序按照我们期望的执行导致线程安全的三个源头:可见性有序性原子性什么时候才需要注意产生安全性问题呢?存在共享数据并且该数据会发生变化,简单来说就是多个线程会同时读写同一数据

并发编程(四):如何应对死锁

1.死锁的情况2.如何预防死锁2.1.破坏“占用且等待”2.2.破坏“不可抢占条件”2.3.破坏“循环等待条件”3.用“等待-通知”机制优化“循环-等待”3.1.用 synchronized 实现等待 - 通知机制3.2.等待-通知机制的范式3.3.尽量使用notifyAll()1.死锁的情况针对有

并发编程(三)互斥锁:解决原子性问题

1.原子性问题如何解决2.互斥2.1.简易锁模型2.2.改进后的锁模型2.3.Java提供的锁机制:Synchronized2.4.锁和受保护资源的关系3.如何用一个锁保护多个资源3.1.保护没有关联的多个资源3.2.保护有关联关系的多个资源1.原子性问题如何解决原子性的源头是线程切换。而前程切换是

并发编程(二)Java内存模型:解决可见性、有序性问题

1.Java内存模型2.Happens-before规则1.Java内存模型导致可见性的原因是CPU缓存、导致有序性的原因是编译器优化,那么按需禁用缓存和编译优化就有了一定的必要,但是该如何按需禁用呢?对于程序员而言,如何做到按需禁用呢?JVM会提供相关方法给程序员。站在程序员的视角,本质上可以理解

数据结构脑图

数据结构总览算法的复杂度时间复杂度概念执行算法所需要计算的工作量,可以理解为基本操作的计算随着数据量的提升,计算的工作量以指数增长,也就是增长率针对递归求解https://blog.csdn.net/u013048263/article/details/38676847空间复杂度线性表顺序表概念类型
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×