java
文章平均质量分 79
约翰.史密斯
生活不止有眼前的苟且。
展开
-
java多线程学习
一.实现多线程二.开启多线程启动三.线程停止、中断四.图解线程生命周期五.Thread和Object类中的重要方法详解六. 线程属性七.线程异常处理八.线程使用的利弊并发编程底层原理活跃性问题:死锁、活锁、饥饿...原创 2021-04-09 20:53:13 · 130 阅读 · 0 评论 -
活跃性问题:死锁、活锁、饥饿
什么是死锁1.发生在并发中2.互不相让:当两个(或更多)线程相互持有对方需要的资源,又不主动释放,导致所有线程都无法继续进行,使得两个(或多个)线程陷入无限的阻塞,这就是死锁两个线程造成的死锁public class DeadLock { public static void main(String[] args) throws InterruptedException { new Thread(DeadLock::command).start(); new原创 2021-04-08 17:30:24 · 255 阅读 · 1 评论 -
并发编程底层原理
1.什么是底层原理?从java代码->CPU指令步骤1.编写Java代码,是*.java文件2.通过javac编译后,根据*.java文件生成对应的*.class文件,这个文件里面是字节码.3.JVM根据平台的不同,根据需求将字节码解释为不同的机械指令到不同的CPU上执行.4.机器指令可以直接在CPU上执行,也就是最终的的程序执行结果根据第3点可知,JVM会将相同的字节码,根据平台支持和规范的不同翻译为不同的机器指令,所以如果单单如此,无法保证并发安全的效果一致.解决通过定义一套规原创 2021-04-08 16:28:31 · 237 阅读 · 0 评论 -
七.线程异常处理
UncaughtException主线程可以轻松发现异常,子线程不行由于子线程无法像主线程那样在未捕获异常出现时,终止卡主,轻松排查.同时作为一个兜底的功能,避免不必要的信息提交到前端 public static void main(String[] args) throws InterruptedException { new Thread(()->{ System.out.println(1/0); }).start();原创 2021-04-08 16:12:55 · 239 阅读 · 0 评论 -
六. 线程属性
六. 线程属性线程各属性纵览ID每次程序运行唯一、自增、不可被修改代码 public static void main(String[] args) throws IOException { Thread main = Thread.currentThread(); System.out.println(main.getName() + ">>" + Thread.currentThread().getId()); new Thr原创 2021-04-08 16:11:57 · 92 阅读 · 0 评论 -
五.Thread和Object类中的重要方法详解
1.方法概览2.wait,notify,notifyAll作用、用法注意wait的使用一定要在一个循环中进行,根据条件判断是否继续执行伪唤醒/*A thread can also wake up without being notified, interrupted, or timing out, a so-called spurious wakeup. While this will rarely occur in practice, applications must guard again原创 2021-04-08 16:00:10 · 261 阅读 · 1 评论 -
四.图解线程生命周期
四.图解线程生命周期线程的一生,六个状态(生命周期)public enum State { //新建 NEW, //可运行 RUNNABLE, //阻塞 BLOCKED, //等待 WAITING, //计时等待 TIMED_WAITING, //终止 TERMINATED; }每个状态的含义New已创建,但是还未启动的新线程.也就是已经new出来了,但是还没有调原创 2021-04-08 15:50:06 · 370 阅读 · 0 评论 -
一.实现多线程
一.实现多线程的正确姿势1.1实现多线程的方法到底是一种两种还是四种?https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.htmlThere are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread class PrimeThread extends Thread {原创 2021-04-08 15:33:28 · 133 阅读 · 0 评论