#私藏项目实操分享#Java多线程下载器基础代码
Posted link可
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#私藏项目实操分享#Java多线程下载器基础代码相关的知识,希望对你有一定的参考价值。
文件下载器的基础代码
1. HttpURLConnection
从互联网中下载文件的话,需要与文件所在的服务器建立连接,这里可以使用jdk提供的java.net.HttpURLConnection类来帮助我们完成这个操作。jdk11中有提供java.net.http.HttpClient类来替代HttpURLConnection,由于现在使用的是jdk8,因此先不用jdk11中的HttpClient。除此之外还有一些其他第三方提供类可以执行类似的操作,这里就不赘述了。
2. 用户标识
我们通过浏览器访问某个网站的时候,会将当前浏览器的版本,操作系统版本等信息的标识发送到网站所在的服务器中。当用程序代码去访问网站时,需要将这个标识发送过去。下面的标识大家可以拷贝到程序中。
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (Khtml, like Gecko) Chrome/14.0.835.163 Safari/535.1
下载信息
1. 计划任务
文件下载的时候最好能够展示出下载的速度,已下载文件大小等信息。这里可以每隔一段时间来获取文件的下载信息,比如间隔1秒获取一次,然后将信息打印到控制台。文件下载是一个独立的线程,另外还需要再开启一个线程来间隔获取文件的信息。java.util.concurrent. ScheduledExecutorService,这个类可以帮助我们来实现此功能。
2. ScheduledExecutorService
在该类中提供了一些方法可以帮助开发者实现间隔执行的效果,下面列出一些常见的方法及其参数说明。我们可以通过下面方式来获取该类的对象,其中1标识核心线程的数量
ScheduledExecutorService s = Executors.newScheduledThreadPool(1);
2.1 schedule方法
该方法是重载的,这两个重载的方法都是有3个形参,只是第一个形参不同。
- Runnable / Callable<V> 可以传入这两个类型的任务
- long delay 时间数量
- TimeUnit unit 时间单位
该方法的作用是让任务按照指定的时间延时执行
2.2 scheduleAtFixedRate方法
该方法的作用是按照指定的时间延时执行,并且每隔一段时间再继续执行
- Runnable command 执行的任务
- long initialDelay 延时的时间数量
- long period 间隔的时间数量
- TimeUnit unit 时间单位
倘若在执行任务的时候,耗时超过了间隔时间,则任务执行结束之后直接再次执行,而不是再等待间隔时间执行。
2.3 scheduleWithFixedDelay方法
该方法的作用是按照指定的时间延时执行,并且每隔一段时间再继续执行
- Runnable command 执行的任务
- long initialDelay 延时的时间数量
- long period 间隔的时间数量
- TimeUnit unit 时间单位
在执行任务的时候,无论耗时多久,任务执行结束之后都会等待间隔时间之后再继续下次任务。
以上是关于#私藏项目实操分享#Java多线程下载器基础代码的主要内容,如果未能解决你的问题,请参考以下文章
#私藏项目实操分享# Java实现基于朴素贝叶斯的情感词分析
Docker基础:安装RabbitMQ服务 #私藏项目实操分享#