自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java8 RecursiveTask实现forkjoin

package com.mock;import org.junit.jupiter.api.Test;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.RecursiveTask;public class TestForkJoinCalculate { @Test public ...

2019-12-29 18:52:00 274

原创 Java8 Stream API

创建Stream的4种方式 /** * 创建Stream */ @Test public void test1() { //1. Collection 提供了两个方法 stream() 与 parallelStream() List<String> list = new ArrayList<>()...

2019-12-29 18:25:00 145

原创 Java8 方法、构造器、数组引用

一、方法引用:若 Lambda 体中的功能,已经有方法提供了实现,可以使用方法引用对象的引用 :: 实例方法名类名 :: 静态方法名类名 :: 实例方法名注意:①方法引用所引用的方法的参数列表与返回值类型,需要与函数式接口中抽象方法的参数列表和返回值类型保持一致!②若Lambda 的参数列表的第一个参数,是实例方法的调用者,第二个参数(或无参)是实例方法的参数时,格式: ClassN...

2019-12-29 16:39:40 191

原创 Java8 Lambda表达式和4大函数式接口

Lambda表达式操作的必须是函数式接口,也就是只有一个抽象方法的接口package com.mock;import org.junit.jupiter.api.Test;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Predicate;...

2019-12-29 15:50:17 328

原创 创建线程的4中方式

1、继承Thread类2、实现Runnable接口3、实现Callable接口4、通过线程池创建package com.mock;import org.junit.jupiter.api.Test;import java.util.concurrent.*;public class TestThread { /** * 继承Thread类 */ ...

2019-12-22 22:21:16 174

原创 读写锁ReadWriteLock

ReadWriteLock可以多个线程读,读锁可以多个线程持有,但是写锁是独享的package com.mock;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class TestReadWriteLock {...

2019-12-22 22:05:28 155

原创 使用Lock Condition交替打印ABC

使用Lock Condition交替打印ABCpackage com.mock;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class TestPrint...

2019-12-22 21:43:17 484 1

原创 使用Condition加Lock解决生产者消费者问题

使用Condition加Lock解决生产者消费者问题package com.mock;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class TestPr...

2019-12-22 20:51:06 134

原创 生产者消费者问题虚假唤醒

生产者消费者问题演示及解决问题一:package com.mock;import org.junit.jupiter.api.Test;public class TestProducerAndConsumer { @Test public void test() { Product p = new Product(); new Threa...

2019-12-22 20:45:50 208

原创 同步锁Lock

使用Lock可以使多线程数据安全多线程安全问题:package com.mock;import org.junit.jupiter.api.Test;public class TestLock { @Test public void test() throws InterruptedException { ThreadLock tl = new Thre...

2019-12-22 19:31:54 142

原创 CountDownLatch

CountDownLatch可以使某个线程等待其他线程执行完成之后才执行代码逻辑package com.mock;import org.junit.jupiter.api.Test;import java.time.Duration;import java.time.Instant;import java.util.concurrent.CountDownLatch;public...

2019-12-22 18:54:37 157

原创 原子性及CAS算法

java.util.concurrent.atomic 包下提供了一些原子变量非原子性操作问题:package com.mock;import org.junit.jupiter.api.Test;public class TestAtomic { @Test public void test() throws InterruptedException { ...

2019-12-22 18:33:13 251

原创 volatile关键字

volatile关键字是为了解决线程之间共享变量不可见问题。会强制刷新主内存的变量使线程能拿到最新的变量。线程之前共享变量不可见问题:package com.mock;import org.junit.jupiter.api.Test;public class TestVolatile { /** * 主线程永远不会打印消息 */ @Test ...

2019-12-22 17:20:11 99

原创 NIO管道Pipe

实现开启一条线程向Pipe 管道里面写入数据,另一条线程读取Pipe管道里面的数据package com.mock;import org.junit.jupiter.api.Test;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.channels.Pipe;import java.time...

2019-12-22 15:57:42 180

原创 字符集编解码Charset

利用Charset实现数据的编解码package com.mock;import org.junit.jupiter.api.Test;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.charset.CharacterCodingException;import java.nio.char...

2019-12-22 15:54:52 2286

原创 实现非阻塞UDP DatagramChannel

利用DatagramChannel 实现非阻塞的数据报发送接收package com.mock;import org.junit.jupiter.api.Test;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channe...

2019-12-22 15:51:46 473

原创 简单聊天室SocketChannel ServerSocketChannel

利用SocketChannel ServerSocketChannel实现简单的聊天室package com.mock;import org.junit.jupiter.api.Test;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import jav...

2019-12-22 15:46:49 507

空空如也

空空如也

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

TA关注的人

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