Java多任務

Java
1、java编程语言
2、java API(Application Programming Interface 应用编程接口)
3、Java 虚拟机


虚拟机、解释程序和浏览器
1、Java虚拟机(JVM java virtual machine)是Java解释程序的另一种说法
2、Java解释程序的三种常见的形式:
1)程序员使用的解释程序(java),它通过命令行或者文件管理器来运行程序;
2)最终用户使用的解释程序(jre Java Runtime Enviroment),他是编程环境的子集,也是构成java插件的基础;
3)内嵌到许多流行的浏览器以及JDK(Java Developer's Kit,java开发者工具包)中的解释程序;


线程
线程(thread)是控制线程(thread of control)的简写,而控制线程,简单的说,就是在一个程序中与其他的控制线程无关的能够独立运行的代码片段。


控制线程
是程序运行时的路径,就像计算机运行一个应用程序那样,我们的执行步骤、执行的顺序就是执行的路径,而这个执行路径就是控制线程运行的结果。


有多个控制线程就如同从两个"to do"列表中执行任务一样,我们仍以正确的顺序运行每一个"to do"列表中的任务,但是当我们对其中一个列表中的任务感到厌烦时,可以切换到另一个列表中去运行,并且当我们在以后返回到第一个列表中时,可以回到刚才离开的地方继续执行。


单线程进程
1、进程从一个众所周知的入口点开始执行
2、对于给定的输入,进程按照一个顺序的、预先定义好的次序来执行语句。对于一个单独的进程来说,任务很简单:执行程序的下一条语句。
3、在执行的过程中,进程要访问某些数据
在java中有三种类型的数据:
1)局部(local)变量:从线程的堆栈中访问
2)实例(instance)变量:通过对象引用来访问
3)静态(static)变量:通过类或者对象引用来访问


举例:
计算机运行两个单线程程序文本编辑器和文件管理器
1)计算机中有两个进程在运行
2)每一个进程都有一个线程
3)每一个进程都不需要知道另一个进程的运行情况
4)进程之间可以用不同的方法发送各种消息
5)尽管线程可以选择合作运行,但每一个进程都是独立运行的
6)这两个进程的数据在默认的情况下是隔离的,每个进程都有自己的堆栈来存储局部变量,也都有自己的数据空间来存放对象和其他数据元素。
7)在许多操作系统中,程序员可以通过编程将数据对象存放在内存中并且允许其他进程访问它们,从而使得多个进程可以共享它们。




从计算机使用者的角度来看,尽管会被很多变量影响,但这些进程看上去是同时运行的,这些变量依赖于操作系统。


Thread类


Thread() 使用默认值来构造一个线程化的对象;
void run() 新创建的线程会执行这个方法;
start() 创建一个新的线程并运行这个线程类中定义的run方法;











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.得到服务器下载文件的大小,然后在本地设置一个临时文件和服务器端文件大小一致 a)获得访问网络地址 b)通过URL对象的openConnection()方法打开连接,返回一个连接对象 c)设置请求头 i.setRequestMethod ii.setConnectTimeout iii.setReadTimeout d)判断是否响应成功 e)获取文件长度(getContentLength()) f)随机访问文件的读取与写入RandomAccessFile(file, mode) g)设置临时文件与服务器文件大小一致(setLength()) h)关闭临时文件 2.计算出每个线程下载的大小(开始位置,结束位置) a)计算出每个线程下载的大小 b)for循环,计算出每个线程的开始、结束位置 c)最后一个线程处理 3.每创建好一次就要开启线程下载 a)构造方法 b)通过URL对象的openConnection()方法打开连接,返回一个连接对象 c)设置请求头 i.setRequestMethod ii.setConnectTimeout d)判断是否响应成功(206) e)获取每个线程返回的流对象 f)随机访问文件的读取与写入RandomAccessFile(file, mode) g)指定开始位置 h)循环读取 i.保存每个线程下载位置 ii.记录每次下载位置 iii.关闭临时记录位置文件 iv.随机本地文件写入 v.记录已下载大小 i)关闭临时文件 j)关闭输入流 4.为了杀死线程还能继续下载的情况下,从本地文件上读取已经下载文件的开始位置 a)创建保存记录结束位置的文件 b)读取文件 c)将流转换为字符 d)获取记录位置 e)把记录位置赋给开始位置 5.当你的n个线程都下载完毕的时候我进行删除记录下载位置的缓存文件 a)线程下载完就减去 b)当没有正在运行的线程时切文件存在时删除文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值