Skip to content

Latest commit

 

History

History
96 lines (69 loc) · 3.85 KB

README.md

File metadata and controls

96 lines (69 loc) · 3.85 KB

learn-example

仓库介绍

包含内容:

  • Java相关技术栈学习的例子
  • 一些解决方案的实现例子
  • 一些技术学习的总结
  • ……

文件夹结构

- distributed-programme	分布式微服务相关
	-- id	分布式式ID的研究
		--- snowflake	雪花算法研究
- downloader 多线程并发文件下载器(后续优化)
- java-core  Java相关api测试和实现
	-- java8  Java8的api例子
	-- proxytest 动态代理例子
	-- reflectiontest	反射例子
	-- thread 多线程例子
		--- collection 并发集合例子
			---- queue 阻塞队列的实现
- rabbitmq		RabbitMQ学习和测试
- zookeeper		ZooKeeper学习和测试

java-core

目的

Java核心API相关的一些实现。

  • java8 Java8的api例子
  • proxytest 动态代理例子
  • cglibproxy CGLB实现动态代理例子
  • jdkproxy JDK代理例子
  • reflectiontest 反射例子
    • servlettest 基于反射,实现一个servlet处理多个接口请求
  • thread 多线程例子
    • collection 线程相关集合例子
      • queue 阻塞队列的实现
        • SimpleArrayBlockQueue.java 简单阻塞队列(synchronized + wait() + notifyAll())
        • ArrayBlockQueue.java 阻塞队列(ReentrantLock + Condition)

downloader

downloader实现目的

面试题:写个Java程序,多线程并发下载文件,支持断点续传。你的解决方案(客户端和服务端分别怎样实现)?

一次面试中遇到了这个问题,于是乎就进行了研究。

- downloader
	-- down
	-- downbit

down和downbit分别是两种实现方式,从github中获得的源码,都有很多可优化的空间,但是实现了基本的需求。

down源码地址:源码
  • 记录了操作日志(会形成一个日志文件),控制台输出了线程信息

image-20210807175608105

downbit源码地址:源码
  • 每秒实时更新下载速度
  • 记录了下载时间
  • 配置项更多

image-20210807175910846

多线程并发下载(支持断点续传)相关资料

以下是收集的一些相关资料,留待之后优化。

优化空间

  • 只有客户端实现,无服务端,也应提供个服务端的方案
  • 日志、控制台记录内容还不够完善
  • 目前不支持取消和暂停下载
  • 目前是Java客户端,下载连接只能写死
  • ……