JAVA
INK_FUNC
这个作者很懒,什么都没留下…
展开
-
平衡二叉树 记录
JAVA实现,以及JFrame 结果展示package com.example.fndemo.tree;import java.util.Stack;/** * 平衡二叉树,旋转 * @author zq * @date 2020-09-08 18:20 */public class AVLTree { Node<Integer> rootNode; public static void main(String[] args) { Integer[] datas原创 2020-09-08 20:32:29 · 159 阅读 · 0 评论 -
为什么wait(),notify(),notifyAll()必须在同步(Synchronized)方法/代码块中调用?
粗浅来说:wait(),notify(),notifyAll()是Java中一种多线程通信机制,通信机制最重要的便是等待通知/发送通知/收到通知,在这三者之间必须维持这样的顺序,才能使机制正常工作.在多线程环境之中这样的顺序可能会遭到破坏,比如,a线程在完成自己一半任务后,下一半任务需要等待b线程的工作结果,才能正确完成所有任务,那么,正常操作就是a线程完成一半任务后调用 wait(),进入等待状态,b线程在完成任务后则调用notify()通知a线程可以继续工作,若两个线程不加同步,则可能出现a在调用原创 2020-08-16 16:56:58 · 517 阅读 · 0 评论 -
volatile与synchronized
JAVA中的多线程的基本问题就是安全问题。一方面是如何防止死锁发生,另一方面是如何保证多个线程对同一资源的进行一系列操作后资源的状态正确性。第二方面可以由对资源操作的原子性,代码执行的顺序性,和资源的可见性来保证。volatile 保证每次拿到最新的资源(变量),即在多线程中资源的可见性。synchronized 用于保证多线程之间的同步性,即线程执行顺序,变相的使多线程变成顺序执行,也就...原创 2019-12-05 11:15:22 · 125 阅读 · 0 评论 -
JVM总结
作为学习JVM的一个小结,肯定还有很多错误,还请多多指正java中的内存分为四种:堆:线程共享,堆中存放是对象,所有的运行时对象存放在堆中;桟:java中桟的单位是桟帧,线程私有的,每个被调用的方法都会创建一个桟帧用以存放方法的局部变量,操作数桟,动态链表,方法出口等等,可分为为java方法服务的java方法桟和为本地方法服务的本地方法桟;程序计数器:线程私有,相当于字节码行号指示器,用于指示原创 2018-04-13 17:15:32 · 304 阅读 · 1 评论 -
interrupt()、interrupted()、isInterrupted() 的区别
区别1,interrupted()属于类方法,interrupt()、和isInterrupted()属于对象方法。区别2:interrupted():返回当前线程的中断标志位,并设置中断标志位false;interrupt():设置线程对象的中断标志位为true;isInterrupted():返回线程对象的中断标志位。关于,当线程满足两个条件,阻塞状态和中断标志为ture,则...原创 2019-03-05 17:32:55 · 1093 阅读 · 0 评论