实现生产者-消费者模式的五种方式

实现生产者-消费者模式的五种方式

在学习完 RabbitMQ 后,才明白为什么那么喜欢问生产者-消费者问题,因为在很多开发领域都能派上用场。在 Java基础 以及 操作系统 都有接触,但还是要在这里再总结一下。实现方式生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。保证同一时刻只有一个线程读或写:用synchronized对存储加锁,然后用obj...

总结和问题 2019-08-23 PM 10次 0条
Java 实现附近视频功能

Java 实现附近视频功能

在实习的项目中,获取视频列表时,需要实现一个按照附近视频获取列表的接口,通过爬文,一般有如下三种解决方法:上传视频时,保存地点的经、纬度到数据库,根据用户位置计算边界值,数据库进行范围索引查询。通过 geohash 算法将经纬度转换成一个字符串,保存到数据库,用户位置也转换成字符串,然后进行模糊查询。使用能保存地理位置信息的数据库,如:mongodb、sqlserver、mysql5.7+。...

总结和问题 2019-08-08 PM 13次 0条
Java8新特性之Stream API

Java8新特性之Stream API

概述Stream API 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用fork/join并行方式来拆分任务和加速处理过程。总得来说,Stream API 就是提供了一种高效且易于使用的处理数据的方式。注:需要会使用 Lambda 表...

总结和问题 2019-07-25 PM 10次 0条
Java8新特性之Lambda表达式和方法引用

Java8新特性之Lambda表达式和方法引用

Lambda表达式Lambda表达式是 Java 8 新特性中的一种新的语法形式,首先我们先来看下它的例子:(String s) -> System.out.println(s)格式:参数列表 -> 函数主体(可有返回类型 / 抛出异常)我们可以将 Lambda 表达式理解为是一个函数,这个函数的特点是匿名(没有名称)且可传递(作为方法参数)的。而可传递是如何表现的呢?这就涉及到...

总结和问题 2019-07-25 PM 11次 0条
HttpClientUtil工具类

HttpClientUtil工具类

在项目中,我们经常会使用到第三方的一些工具或者应用,如小程序,公众号,腾讯云等。需要对第三方相应的 API 发送请求,以实现具体的功能,因此我们可以把发送请求的不同操作封装成一个工具类,方便调用。 public class HttpClientUtil{ private CloseableHttpClient client = null...

总结和问题 2019-07-14 PM 11次 0条
Java 定时器的五种实现方式

Java 定时器的五种实现方式

@[toc]线程方式 public class Main{ public static void main(String[] args) { Runnable runnable = new Runnable() { public void run() { ...

总结和问题 2019-06-22 PM 12次 0条
学习总结BIO,NIO,AIO

学习总结BIO,NIO,AIO

BIO,NIO,AIO 的概念Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。同步阻塞IO(BIO): 用户进程发起一个IO操作以后,必须等待IO操作的真正完成后,才能继续运行。同步非阻塞IO(NIO): 用户进程发起一个IO操作以后,可做其它事情,但用户进程需要经常询问IO操作是否完成,这样造成不必要的CPU资源浪费。异步非阻塞IO(A...

默认分类 2019-05-22 PM 30次 0条
集合框架总结

集合框架总结

源码分析导航ArrayList:https://blog.csdn.net/MOKEXFDGH/article/details/88575150LinkedList:https://blog.csdn.net/MOKEXFDGH/article/details/88615783HashMap:https://blog.csdn.net/MOKEXFDGH/article/details/88...

默认分类 2019-03-20 PM 21次 0条
ConcurrentHashMap源码分析

ConcurrentHashMap源码分析

ConcurrentHashMap简介HashMap: 线程不安全,在并发环境下,扩容时可能会形成环形链表(1.8之前),导致在 get 操作时,cpu空转。HashTable: 相比 HashMap 不允许 key 和 value 为空,且是线程安全的。但所有的 get、put 方法都加上了 synchronized 锁,相当于给整个哈希表加了一把大锁,当一个线程访问时,其它线程只能等待,...

默认分类 2019-03-19 PM 19次 0条