仿佛兮若轻云之蔽月,飘飘兮若流风之回雪。一种名状,是一种墨迹,一种发自潜意识的。

请问:大家懂我说的这句话的意思吗?程序员的生活要种诗意,偶尔写写小散文,为什么程序员不能成为诗人呢?

只需要一种名状和意境,平凡的人也可以超神,难道数字和键码是我们全部吗?一个小小的意境,一个小小灵感来之不易,为何不赶快铭刻在心呢?不,刻于心。就像初恋一样,苦涩的味道,一种清甜,远了,但香味依然残留在十指之间。她是如此迷人,深呼一口气品尝她的味道,只有甜味吗?不,一种难咽但难割舍的味道,什么味道都有,怪味豆。不要相信你就是哪个天天吃着天香蚕豆的绝世天人,非也,大神不是你。大神神吗?神,但也不神,有人说我当你是空气,你一定很气,特别是你的小初恋情人说出的,我们需要的是一种心态。为何我就不是那空气。如果我是空气就是大神了。知道什么是大神。不做解释,老年纪了就问问朋友。大神是种名状,已融掉了。但是确实很牛B,但又是那么平凡你天天感受的到他的存在的。空气知道了吗?不知道你就非人类。但是这个世界我是没见过的,不知道那么大神见过。每每呼吸一口空气,我就听的到自己的心跳在还在跳,大神就是能带你给你心跳的人。你吸入他,他融入了你那么你牛了,功底不错。如果你没能融入他,那么他也不伤害你,只是你可能哮喘了,瓶颈了。”这么“办。千万在别在来个小高血压,那么你的小命不保,人生到头了。呼出了他,是二氧化碳了,废气吗?no(弄:no的意思),还可以光合作用。他是如此的好,人人爱,想爱都不行,除非你想少活几年。死到不会,拿空气来第一人称。简述完毕:大神概念。是丰功伟业吗?弄:平凡的无处不在,但你天天感受的到,缺他不可,就这么缺他不可,是多少人的梦,不是:是在睡觉时的那种不名状的笑。

1,2,3,4....哒地,哒等哒,哒地哒等哒,妹妹我一定要得到你,你就是我今生的唯一,只要我还能继续呼吸,我就,我就,不会轻易的放弃你。

本来是写给一个女孩的,但是又和工作联系上了,没发成,就发这里,本想用优美的文字来表达,听着音乐双手就像弹钢琴一样,十指休闲的在那块富有弹性的方格区,跳起了优美的华尔兹。由于华尔兹很优美,没加入幽默的街舞味道,请原谅,我不能破坏了这优美的舞姿。

专业的事用大神的心态对待,用高度兴趣的态度完成专业的事情。(职业的游戏竞技手,专业吧,还是权威的,在专业上吗?在兴趣上,游戏是娱乐,但是真要你成为职业手,你未必很快乐,也许就是痛苦。游戏好玩,但不要被游戏玩了。)

那天失去了兴趣怎么,苦脑,郁闷,做为男人有什么苦脑的,pass。郁闷,男人,女人都有的。弄:什么男人和女人都的,郁(欲:想要的意思),(闷:man:男人的意思)。大家跟我一起连起来说一遍:想要男人。作为男人的我们:怎么能郁闷,郁闷,郁闷,郁闷那不是女人干的事吗,我们什么时候说郁闷了。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


 java  多线程下载工具的小小实现。

源码在里头,里头哪里?你懂的,javaeye老规矩。呵呵。。。

扯谈太多,懒得对源码的解释,请原谅!!!共享下。。。。

package org.crazyit.flashget.thread;import java.io.File;
import java.io.RandomAccessFile;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;import org.crazyit.flashget.ContextHolder;
import org.crazyit.flashget.DownloadContext;
import org.crazyit.flashget.object.Part;
import org.crazyit.flashget.object.Resource;
import org.crazyit.flashget.state.Finished;public class DownloadHandler {public static Map<String, Timer> timers = new HashMap<String, Timer>();public void stopTimer(Resource r) {Timer t = timers.get(r.getId());if (t != null) {t.cancel();}}public void doDownload(Resource r) {try {//设置下载日期if (r.getDownloadDate() == null) r.setDownloadDate(new Date());r.setState(DownloadContext.CONNECTION);//计算出每一块的大小int partLength = r.getSize() / r.getThreadSize() + 1;//时间计算任务CountTimeTask timeTask = new CountTimeTask(r);Timer timer = new Timer();timer.schedule(timeTask, 0, 1000);//将Timer对象放到Map中, key为该资源的idtimers.put(r.getId(), timer);for (int i = 0; i < r.getThreadSize(); i++) {int length = partLength;//如果是最后一块, 则使用总数来减去前面块的总和if (i == (r.getThreadSize() - 1)) {length = r.getSize() - i * partLength;}//创建各个Part对象Part p = new Part((i * partLength), length, 0);r.getParts().add(p);RandomAccessFile rav = new RandomAccessFile(r.getFilePath() + File.separator + p.getPartName(), "rw");DownloadThread t = new DownloadThread(r, rav, p);//设置线程优先级t.setPriority(6);t.start();}} catch (Exception e) {r.setState(DownloadContext.FAILED);e.printStackTrace();}}public void resumeDownload(Resource r) {if (r.getState() instanceof Finished) return;try {CountTimeTask timeTask = new CountTimeTask(r);Timer timer = new Timer();timer.schedule(timeTask, 0, 1000);//将Timer对象放到Map中, key为该资源的idtimers.put(r.getId(), timer);for (int i = 0; i < r.getParts().size(); i++) {Part p = r.getParts().get(i);RandomAccessFile rav = new RandomAccessFile(r.getFilePath() + File.separator + p.getPartName(), "rw");DownloadThread t = new DownloadThread(r, rav, p);t.start();}} catch (Exception e) {r.setState(DownloadContext.FAILED);e.printStackTrace();}}//计算时间任务class CountTimeTask extends TimerTask {private Resource r;public CountTimeTask(Resource r) {this.r = r;}public void run() {r.setCostTime(r.getCostTime() + 1);}}
}

============================================================================

package org.crazyit.flashget.thread;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;import org.crazyit.flashget.ContextHolder;
import org.crazyit.flashget.DownloadContext;
import org.crazyit.flashget.exception.URLException;
import org.crazyit.flashget.object.Part;
import org.crazyit.flashget.object.Resource;
import org.crazyit.flashget.state.Pause;
import org.crazyit.flashget.util.FileUtil;public class DownloadThread extends Thread {private URL url;private RandomAccessFile raf;//下载的资源对象private Resource resource;//本线程需要下载的块private Part part;/*** 下载线程构造器*/public DownloadThread(Resource resource, RandomAccessFile raf, Part part) {this.url = createURL(resource.getUrl());this.raf = raf;this.part = part;this.resource = resource;}private URL createURL(String urlPath) {try {return new URL(urlPath);} catch (Exception e) {throw new URLException("create url error");}}public final static int MAX_BUFFER_SIZE = 1024;public void run() {try {//计算开始点与结束点int begin = part.getBegin() + part.getCurrentLength();int end = part.getBegin() + part.getLength() - 1;//如果是开始点大于结束点, 证明该块已经下载完成if (begin >= end) {this.raf.close();return;}HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();urlConnection.setRequestProperty("Range", "bytes=" + begin + "-" + end); //如果连接不上相应的地址, 抛出java.net.UnknownHostExceptionurlConnection.connect();//如果找不到相应的资源, 将抛出java.io.FileNotFoundExceptionInputStream is = urlConnection.getInputStream();byte[] buffer = new byte[MAX_BUFFER_SIZE];int perRead = 0;//设置状态为下载this.resource.setState(DownloadContext.DOWNLOADING);//在.part文件中设置当前所读取的指针this.raf.seek(this.part.getCurrentLength());while ((perRead = is.read(buffer)) != -1) {//判断资源对象的状态是否被修改成暂停if (this.resource.getState() instanceof Pause) {closeStream(is, urlConnection, this.raf);return;}//判断资源对象状态raf.write(buffer, 0, perRead);this.part.setCurrentLength(this.part.getCurrentLength() + perRead);}closeStream(is, urlConnection, this.raf);//判断是否下载完成, 如果下载完成, 则进行合并文件//注意这里需要得到整个文件的大小, 而不是某个.part文件的大小if (isFinished(this.resource.getSize())) uniteParts();} catch (Exception e) {this.resource.setState(DownloadContext.FAILED);e.printStackTrace();}}private void closeStream(InputStream is, HttpURLConnection urlConnection, RandomAccessFile raf) throws IOException {is.close();urlConnection.disconnect();raf.close();}/*** 判断是否下载完成, 遍历下载文件的各个.part文件* @param fileLength* @return*/private boolean isFinished(int fileLength) {List<Part> parts = this.resource.getParts();//计算已下载的总数int downCount = 0;for (Part part : parts) downCount += part.getCurrentLength();return (downCount >= fileLength) ? true : false;}/*** 合并part文件*/private void uniteParts() throws IOException {List<Part> parts = this.resource.getParts();//创建文件输出流, 输出到下载文件OutputStream bos = new FileOutputStream(this.resource.getSaveFile(), false);for (Part part : parts) {//得到.part文件File partFile = new File(FileUtil.getPartFilePath(this.resource, part));//获得文件输入流InputStream is = new FileInputStream(partFile);byte[] buffer = new byte[1024];int bytesRead;int temp = 0;while ((bytesRead = is.read(buffer)) != -1) {temp += bytesRead;//写到文件中bos.write(buffer, 0, bytesRead);}is.close();}bos.close();this.resource.setState(DownloadContext.FINISHED);}public static void main(String[] args) throws Exception {int threadSize = 5;Resource f = new Resource("http://www.apache.org/dist/struts/library/struts-2.1.8.1-lib.zip", "C:/test-download", "struts.zip", threadSize);ContextHolder.dh.doDownload(f);}
}
Sorry!上次忘给源码了。 写道
希望对你们有些个帮。。。。

仿佛兮若轻云之蔽月,飘飘兮若流风之回雪相关推荐

  1. 漫谈RocksDB(二)基础讲解——仿佛兮若轻云之蔽月,飘飘兮若流风之回雪

    前言 古话说得好:"工欲善其事必先利其器",要做好一件事情之前先把工具或者武器强化一下还是很值当的.所以本文将会把RocksDB的主要概念向大家讲解一下,方便后面具体内容的展开.本 ...

  2. 5月10日12点,看雪.深信服2021 KCTF春季赛正式开赛!

    5月10日12点,看雪.深信服2021 KCTF春季赛正式开赛!想要在这盛大赛事大展身手的你们,一定要抓住这次机会! 在这里你会收获到相关的实战经验,与志同道合的网络安全人才交流.切磋的机会,同时还有 ...

  3. TIOBE 12 月编程语言排行榜:Python 夺回前三,Go 跌出前十

    图片来源:qarea.com 我们迎来了 2018 年最后的一个月,看着一年编程语言的起起伏伏.而昨日 TIOBE 公布了 12 月编程语言排行榜,前五名依旧是 Java.C.Python.C++ 和 ...

  4. 香港特首林郑月娥:希望阿里巴巴能够回香港上市

    2019独角兽企业重金招聘Python工程师标准>>> 1月8日晚间消息,香港特别行政区行政长官林郑月娥与阿里巴巴董事局主席马云在香港浙商联合会成立仪式上展开对话,林郑月娥希望阿里巴 ...

  5. es查询所欲_elasticsearch之查询的两种方式

    前言 简单的没挑战,来点复杂的,比如查看来自顾家的都有哪些人怎么查呢?elasticsearch提供两种查询方式: 查询字符串(query string),简单查询,就像是像传递URL参数一样去传递查 ...

  6. ES-查询相关和IK分词器

    排序查询 创建数据 PUT books/_doc/1 {"name":"顾老二","age":30,"from": &q ...

  7. Elasticsearch常用基本语法

    根据网上资料自己稍微整理了一下关于Elastcisearch的基本语法 参考链接: https://blog.csdn.net/afeiqiang/article/details/83021144 h ...

  8. ElasticSearch 之初步上手

    文章目录 1. Elasticsearch 产生背景 2. Elasticsearch 介绍 2.1 Lucene与Elasticsearch关系 2.2 Elasticsearch核心概念 2.3 ...

  9. ELK学习--将自定义nginx日志写入es中并通过kibana展示为例

    今天只是记录总体思路,具体细节不展开,毕竟东西太多 学习目的 业务发展越来越庞大,服务器越来越多 各种访问日志.应用日志.错误日志量越来越多,导致运维人员无法很好的去管理日志 开发人员排查问题,需要到 ...

最新文章

  1. Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令...
  2. c语言关键字-static
  3. 1月12日,HTML学习笔记2
  4. C# using的用法
  5. java命令框编译代码的方式_在命令行模式下如何编译运行Java代码
  6. POJ 1952 BUY LOW, BUY LOWER
  7. Java开发实战经典 目录
  8. 【白皮书分享】2020中国房地产白皮书.pdf(附下载链接)
  9. 如何使用 GRUB 2 直接从硬盘运行 ISO 文件
  10. 2018.07.09 顺序对齐(线性dp)
  11. Android Studio 第五十三期 - 自定义EditText密码键盘
  12. 摩拜单车微信小程序开发技术总结
  13. Chipmump文档
  14. 在线计算机微积分,高等数学计算器
  15. 环境光传感器--OPT3001,硬件开发与程序设计
  16. Ceph Calamari安装问题汇总
  17. 机器学习进阶-阈值与平滑-图像阈值 1. cv2.threshold(进行阈值计算) 2. 参数type cv2.THRESH_BINARY(表示进行二值化阈值计算)...
  18. 2016年12月当前世界经济形势分析--美国的加息计谋
  19. ARFoundation入门1.0 什么是AR
  20. 待办事项 数据库表设计

热门文章

  1. 梅赛德斯-奔驰北京工厂两年内将再投产三款电动汽车
  2. 39.五言、七言律句
  3. 蓝桥ROS机器人之极简贪吃蛇
  4. C#实现滑动拼图验证码
  5. 谷歌称2029年人类开始实现永生不死
  6. mysql 说明外码_MySQL外键(foreign key)使用及说明详解
  7. USB描述符都是什么意思你看懂了吗?
  8. 手机越狱:探索自由与风险的边界
  9. DownloadManager的使用
  10. 让气球飞一会儿(hdu1004)