java
warmor
每天进步一点点..
展开
-
Java线程同步那些事
讲线程同步之前先理解一个概念:monitor,即监视器,也叫管程,是用来管理线程同步的东东,可以把它理解为一个房间的钥匙,想要进入房间,使用房间里的东西,就必须先要拿到钥匙。并且同一时刻只能有一个线程可以拿到它。 java中线程同步是用wait/notify,join来实现的,话不多说,直接上代码。 public class MyTst { /** * @param args */ private volatile boolean ready = false;原创 2020-07-18 20:26:58 · 145 阅读 · 0 评论 -
在Java中如何用interrupt优雅的结束线程
一般来说线程执行完run()之后就自动结束了,不过有些时候我们需要线程不停的做一些事情,也就是使用while循环,那么这时候该如何停止线程呢? 这个问题需要分情况来讨论,如果线程做的事情不是耗时的,那么只需要使用一个标志即可,具体的代码如下: class MyThread extends Thread { private volatile boolean isStop = false; public void run() { ...原创 2020-07-17 21:28:55 · 328 阅读 · 0 评论 -
Java内存管理
Java程序实际上是把内存控制的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会成为一项异常艰难的工作。而且了解了Java的内存管理,有助于优化JVM,从而使得自己的应用获得最佳的性能体验。所以还等什么,赶紧跟着我来一起学习这方面的知识吧~ Java内存管理分为两个方面:内存分配和垃圾回收,下面我们一一的来看一下。 Jvm定义了5个区原创 2016-06-06 20:28:53 · 4526 阅读 · 8 评论 -
java线程同步volatile与synchronized
前段时间面试时遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?我感觉是不可以的,但是又说不出来为什么。下来后翻看了许多资料,终于了解了volatile的含义和用法了,一起来看看吧。提到线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢?volatile是变量修饰符,其修饰的变量具有可见原创 2016-08-24 01:11:46 · 2188 阅读 · 19 评论