标签:
多线程是这样一种机制,它允许在程序中并非执行多个指令流,每个指令流都被称为一个线程,线程间相互独立。
在Java中提供了java.lang.Thread来进行多线程编程。在基于Java的应用程序中可以通过以下两种方式来创建线程对象。
Thread类提供了大量的方法来控制线程的执行过程。要触发一个新的线程,需要调用start()方法。在调用start()方法时,讲创建一个新的控制线程,新线程进入可运行状态,它将向线程调度器注册这个线程,然后它将调用run()方法。
Thread中定义的一些方法:
方法 | 说明 |
start() | 新建的线程进入可运行状态 |
run() | 线程进入正在运行状态 |
wait() | 线程进入等待状态,等待被唤醒 |
notify()/notifyAll() | 唤醒其他的线程 |
yield() | 线程放弃执行,使其他优先级不低于此线程的线程有机会运行 |
getPriority()/setPriority() | 获得/设置线程的优先级 |
suspend() | 挂起该线程 |
resunme() | 唤醒该线程,与suspend()方法相对 |
sleep() | 线程睡眠指定的一段时间 |
join() | 调用这个方法的主线程,会等待加入的子线程完成 |
?
详细可以看下别人的博客:http://www.cnblogs.com/dolphin0520/p/3920357.html
在实现下载工具系统的过程中,需要定义一个线程下载类,这也是该系统的核心技术。下面是线程现在类的大框架。 /** * 下载线程类 */ public class DownLoadThread extends Thread{ ????public DownLoadThread(DownLoadInfo downInfo, int threadId){ ????????//构造函数 ????} ? ????/** ???? * 获取线程下载是否结束标志 ???? */ ????public boolean ifFinished(){ ????????return finished; ????} ? ????/** ???? * 获取线程下载是否出错标志 ???? */ ????public boolean isError(){ ????????return err; ????} ? ????//覆盖Thread类中的run()方法 ????public void run(){ ????????/** ???? ???? * 实现根据下载的起始位置和结束位置下载文件某一段的逻辑代码 ???? ???? */ ????} } |
?
为了进行数据的输入/输出操作,Java中把不同的输入/输出源抽象表述为"流"(stream)。Java.io包中定义了多个流类型来实现输入/输出功能。
按照流的方向划分,可以分为输入流和输出流。
按照流所处理的数据类型划分,可以分为字节流和字符流。
按照流是否可以直接访问资源划分,可以分为节点流和处理流。
Java.io包支持两种类型的流,包括二进制数据的字节流和包括字符数据的字符流。在读/写数据时,这两种流以不同的方式工作。
在java.io包中,InputStream和OutPutStream类及它们的子类均表示字节流,并且提供了读/ 写二进制数据的方法。
InputStream类中包含3个read()方法,用来从数据流中读取二进制数代码。
输入流的基本方法:
输入流的其他方法如下:
?
OutputStream类包含3个write()方法,用来向数据流写入二进制代码。这些操作与InPutStream类的read()方法向对应。
输出流的基本方法:
?
详细可以看下别人的博客:http://blog.csdn.net/yczz/article/details/38761237
在实现下载工具系统的过程中主要涉及两部分的Java流操作,一个是从打开的URL连接中获得网络的输入流,一个是想文件写入内容的输出流。 |
标签:
原文地址:http://www.cnblogs.com/najiadian/p/5341411.html