摘要: 假如有A,B两个线程,此刻A线程占用锁,当出现异常后会自动释放锁,B线程会继续获得锁运行下去直到释放锁 1.实例方法同步 public synchronized void m(){} 2.静态方法同步 public static synchronized void m(){} 3.实例方法中的同步代 阅读全文
posted @ 2021-08-13 22:35 x77 阅读(93) 评论(0) 推荐(0)
摘要: 1.同步方法使用synchronized修饰方法,在调用该方法前,需要获得内置锁(java每个对象都有一个内置锁),否则就处于阻塞状态 代码如: public synchronized void save(){//内容} 2.同步代码块使用synchronized(object){}进行修饰,在调用 阅读全文
posted @ 2021-08-13 22:27 x77 阅读(403) 评论(0) 推荐(0)
摘要: ![](https://img2020.cnblogs.com/blog/2177031/202108/2177031-20210813163459834-89532912.png) ![](https://img2020.cnblogs.com/blog/2177031/202108/2177031-20210813163522761-1047512629.png) ![](https://im 阅读全文
posted @ 2021-08-13 16:36 x77 阅读(25) 评论(0) 推荐(0)
摘要: remove(int index):该方法删除位于index结点处的元素 remove(Object o):删除特定Object元素 阅读全文
posted @ 2021-06-22 20:54 x77 阅读(207) 评论(0) 推荐(0)
摘要: 一、静态内部类 如果一个类要被声明为static的,只有一种情况,就是静态内部类。 静态内部类实际上与普通类(即类名必须与文件名一样的顶级类)一样,只是静态内部类在某一类的内部定义了而已,既然是类,要想使用就必须实例化。概念上与静态变量、静态方法是不一样的,不要被“静态”两个字迷惑了(不要以为凡是静 阅读全文
posted @ 2021-05-31 19:50 x77 阅读(505) 评论(0) 推荐(0)
摘要: 线程的生命周期是线程对象的生老病死,即线程的状态 线程生命周期可以通过 getState()方法获得, 线程的状态是Thread.State 枚举类型定义的, 由以下几种: NEW,新建状态. 创建了线程对象,在调用 start()启动之前的状态; RUNNABLE, 可 运行 状态. 它 是一 个 阅读全文
posted @ 2021-05-28 17:15 x77 阅读(63) 评论(0) 推荐(0)
摘要: Java中的线程分为用户线程与守护线程 守护线程是为其他线程提供服务的线程,如垃圾回收器(GC)就是一 个典型的守护线程 守护线程不能单独运行, 当 JVM 中没有其他用户线程,只有守护线 程时,守护线程会自动销毁, JVM 会退出 阅读全文
posted @ 2021-05-28 17:05 x77 阅读(33) 评论(0) 推荐(0)
摘要: sleep()方法由于中断而抛出异常,此时,它会清除中断标记,如果不加以处理,那么下一次循环开始时,就无法捕获这个中断,故在异常处理中,再次设置中断标记位 while (!Thread.currentThread().isInterrupted()) { // ... do stuff ... tr 阅读全文
posted @ 2021-05-28 16:44 x77 阅读(285) 评论(0) 推荐(0)
摘要: public class currentThread extends Thread{ public currentThread(){ System.out.println(" 构 造 方 法 打 印 当 前 线 程 的 名 称 : " + Thread.currentThread().getName 阅读全文
posted @ 2021-05-26 17:36 x77 阅读(133) 评论(0) 推荐(0)
摘要: 匿名内部类也就是没有名字的内部类 使用匿名内部类有个前提条件:必须继承一个父类或实现一个接口。 例1:不使用匿名内部类来实现抽象方法 可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用。 例2:匿名内部类的基本实现 例3:在接口上使用匿 阅读全文
posted @ 2021-05-26 16:34 x77 阅读(1946) 评论(0) 推荐(0)