自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 CountDownLatch类简单使用例子

public class MainTest { public static void main(String[] args) throws InterruptedException { final CountDownLatch cdl = new CountDownLatch(1);// final CountDownLatch scdl = new CountDownLatch(5); ExecutorService pool = Execut.

2020-05-13 17:31:33 168

原创 JDK1.7的ArrayList源码

ArrayList的存放用的是数组,在执行add方法可以自动扩容private transient Object[] elementData;第一次add方法后,数组elementData.length大小是10,但是size变成1,只有一个元素。size用的比较巧妙,size++,可以用作下标和list存放数据的大小//默认构造方法,设置数组elementData为{}空数组...

2020-03-24 15:14:31 168

原创 HttpServletRequest请求信息

String scheme = request.getScheme(); //获取协议(http)String serverName = request.getServerName(); //获取服务器名(localhost)int port = request.getServerPort(); //...

2020-03-12 16:51:07 172

原创 JDK 1.7版本的HashMap的源码

HashMap源码解读其实很简单其中里面有几个成员变量table 代表hashmap数组,它是按照capacity去创建数组大小的,所以大小table.length是capacity。size 是存放元素的个数。threshold 构造方法的时候阀值是capacity,put后阀值是capacity*loadFactormodCount 是操作量//构造方法(...

2020-01-09 17:35:43 161

原创 java多线程 volatile关键字的 用法

如下例子可以试试:有volatile和没有volatile的区别有 volatile可以保持共享 变量的可见性和防止程序的指令重排,会打印 出"flag = false"没有volatile的话就不会打印出"flag = false"public class VolatileTest { public volatile boolean flag = true; pub...

2019-12-11 21:58:22 115

原创 java多线程 用Unsafe实现原子性

import sun.misc.Unsafe;import java.lang.reflect.Field;public class LockDemo { volatile int i = 0; //类似操作内存的方法 static Unsafe unsafe = null; private static long iOffset; static...

2019-12-10 22:20:58 272

原创 Java多线程 park和unpark实现生产者和消费者

LockSupport的park和unpark实现挂起和唤醒线程相比wait和notify方法.park和unpark使用没有要求先执行prak后执行unpark的顺序,他们执行顺序不会导致死锁.但是他们在synchronized关键字包围的方法里面,他们还是会导致死锁,因为他们执行好不释放锁.import java.util.ArrayList;import java.util.Lis...

2019-12-06 13:04:39 669

原创 java 多线程 用阻塞队列实现生产者和消费者

import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;//阻塞队列实现生产者和消费者public class BlockQueueTest { public static void main(String[] args) { Bl...

2019-12-05 14:46:37 167

原创 Java多线程 wait和notify方法 实现生产者和消费者

本示例实现生产者和消费者是用wait()和notifyAll()方法,这两个方法的使用比之前的suspend()和resume()方法的优势是在synchronized方法包围的时候会释放锁,不会造成死锁。缺点如果在一个方法中先执行notifyAll(),再执行wait()还是会造成死锁。import java.util.*;public class ThreadCommunicat...

2019-12-05 11:03:07 224

原创 多线程suspend()和resume()方法弃用的原因

在如下代码的情况下suspend()和resume()方法能正常执行。但是它有如下两个问题,很容易造成死锁,导致java将其弃用(建议使用wait和notify,park和unpark): 一、在外面加上synchronized关键字,这样就会造成死锁,因为这两个方法执行后都不释放锁(执行可以吧注释的放开测试)。 二、把下面代码resume()方法和suspend()方法位置换...

2019-12-03 17:23:23 947

原创 JAVA多线程的六种状态实例

//线程状态测试类public class ThreadStaTest { public static void main(String[] args) throws InterruptedException { //一、创建好线程没启动前状态是新建状态 ThreadDemo demo = new ThreadDemo(); Syst...

2019-03-06 21:44:20 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除