- 博客(9)
- 收藏
- 关注
原创 Java线程死锁
线程死锁什么是死锁死锁发生的原因一个必然死锁的程序死锁发生的四个必要条件怎么解决死锁问题解决银行转账死锁问题:改变锁的顺序哲学家就餐问题以及对应的解决方法其它线程活跃性问题活锁饥饿什么是死锁死锁发生的原因一个必然死锁的程序死锁发生的四个必要条件怎么解决死锁问题解决银行转账死锁问题:改变锁的顺序哲学家就餐问题以及对应的解决方法其它线程活跃性问题活锁饥饿...
2021-05-11 13:46:53 159
原创 Java内存模型
Java内存模型Jvm内存结构VSJava内存模型VSJava对象模型Jvm内存结构Java对象模型Java对象模型Java内存模型的三点内容重排序可见性原子性Jvm内存结构VSJava内存模型VSJava对象模型Jvm内存结构VSJava内存模型VSJava对象模型这三者的概念很容易混淆,从整体方向上对它们进行区分:Jvm内存结构,和Java虚拟机运行时区域有关。Java内存模型,和Java的并发编程有关。Java对象模型,和Java对象在虚拟机中的表现形式有关。下面来详细了解一下这三个概念,
2021-04-30 17:19:53 125
原创 线程安全
这里写目录标题什么是线程安全三大线程安全问题运行结果错误:a++问题活跃性问题:死锁,活锁,饥饿对象发布和初始化的时候的安全问题两种解决线程安全的办法使用副本解决逸出问题使用工厂模式解决初始化问题四种需要考虑线程安全的情况多线程导致的性能问题什么是线程安全当多个线程访问一个对象时,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其它的协同操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。三大线程安全问题运行结果错误:a++问题两个线
2021-04-28 16:40:48 178
原创 如何处理UncaughtException异常
如何处理UncaughtException异常为什么要处理UncaughtException异常怎么处理UncaughtException异常线程很容易被发现,子线程中的异常不易被发现。子线程抛出的异常无法使用传统方法捕获。直接捕获异常可以提高代码的健壮性。使用UncaughtExceptionHandler处理未捕获的异常为什么要处理UncaughtException异常在一个项目中,会有很多UncaughtException异常。如果这些异常没有处理,就有可能把异常信息返回给前端,黑客看到这些异常的
2021-04-28 09:51:55 18623
原创 final关键字详解
final关键字详解修饰类修饰方法修饰属性修饰类的属性修饰类的静态属性修饰方法内的变量如何保证一个类对象不可变思考题:final修饰String后发生了什么变化final关键字可以修饰类、方法、和变量。修饰类被final修饰的类不可以被继承。我们经常使用String类,但确没有见过String的子类,那是因为String类是被final修饰的,所以没有类可以继承它。修饰方法final可以修饰方法,被final修饰的方法不能被重写。这和被static修饰的方法一样,都不能被子类重写修饰属性fin
2021-04-26 16:16:01 169
原创 Object和Thread一些和线程阻塞相关的常用方法
Object和Thread一些和线程相关的常用方法Object中的方法wait()notify()和notifyAll()Thread中的方法sleep()join()yield()Object和Thread中一些方法的区别wait()和sleep()方法比较join()和wait()之间的关联Object中的方法wait()notify()和notifyAll()Thread中的方法sleep()join()yield()Object和Thread中一些方法的区别wait()和sleep
2021-04-26 12:39:59 121
原创 线程的六种状态
线程的六种状态线程有哪六种状态线程之间的状态是如何转换的线程有哪六种状态线程的状态一共有六种:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATEDNEW:当创建一个线程对象,还没有调用start()方法。RUNNABLE:调用了start()方法,不管线程是否被CPU执行,都处于RUNNABLE。BLOCKED: 线程等待获取对象的监视器锁时。处于BLOCKED状态时,线程无法被中断WAITING:线程处于无限等待状态,除非被其它线程唤醒或者
2021-04-25 22:38:07 1012 1
原创 Java如何正确的启动和停止进程
Java如何正确的启动和停止进程启动线程的方式:start()停止线程的方式正确停止线程的方式:interrupt()错误停止线程的方式明确被JDK提示禁用的方式:stop()、resume()和suspend()使用volatile修饰的标志位停止线程启动线程的方式:start()启动线程的方式只有一种,那就是调用Thread类的start()方法。可以看下这个方法做了哪些事情。 /** * Causes this thread to begin execution; the Jav.
2021-04-25 00:20:00 594
原创 java创建线程的方式
java创建线程的方式有哪些呢?我们一般想到的方式是两种:继承Thread类、实现Runnable接口。但是这两种创建线程的方式并没有本质的区别。从本质上来讲,创建线程的方式只有一种。
2021-04-24 09:12:01 86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人