[java_初级]:多线程-编程开发技术

[java_初级]:多线程-编程开发技术

ID:30779083

大小:111.00 KB

页数:7页

时间:2019-01-03

[java_初级]:多线程-编程开发技术_第1页
[java_初级]:多线程-编程开发技术_第2页
[java_初级]:多线程-编程开发技术_第3页
[java_初级]:多线程-编程开发技术_第4页
[java_初级]:多线程-编程开发技术_第5页
资源描述:

《[java_初级]:多线程-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、[JAVA•初级]:多线程-编程开发技术[JAVA•初级良多线程原文出处:吴士龙概述程序:Program,是一个静态的概念进程:Process,是一个动态的概念进程是程序的一次动态执行过程,占用特定的地址空间.每个进程都是独立的,由3部分组成cpu,data,code缺点:内存的浪费,cpu的负担线程:Thread,是进程中一个“单一的连续控制流程”?(asinglesequentialf1owofcontrol)/执彳亍路径线程又被称为轻量级进程(1ightweightprocess)。Threadsrunatthesametime,i

2、ndependentlyofoneanother一个进程可拥有多个并行的(concurrent)线程一个进程屮的线程共享相同的内存单元/内存地址空间?可以访问相同的变量和对象,而且它们从同一堆中分配对象?通信、数据交换、同步操作由于线程间的通信是在同一地址空间上进行的,所以不需要额外的通信机制,这就使得通信更简便而且信息传递的速度也更快。—O

3、—进程根本区别作为资源分配的单位开销每个进程都有独立的代码和间(进程上下文),进程间的t有较大的开销。所处环境在操作系统中能同时运行多程序)分配内存系统在运行的时候会为每个配不同的内存区域包含关系没

4、有线程的进程是可以被看程的,如果一个进程内拥有程,则执行过程不是一条线是多条线(线程)共同完成实现在Java中负责线程的这个功能的是Java.lang.Thread这个类可以通过创建Thread的实例来创建新的线程。毎个线程都是通过某个特定Thread对彖所对应的方法run()来完成其操作的,方法)称为线程体。通过调用Thead类的start()方法來启动一个线程。继承Thread类方式的缺点:那就是如果我们的类已经从一个类继承(如小程序必须继承自Applet类),则无法再继承Thread类通过Runnable接口实现多线程优点:可以同吋

5、实现继承。实现Runnable接口方式要通用一些。Java提供一个线程调度器來监控程序中启动后进入就绪状态的所有线程。线程调度器按照线程的优先级决定应调度哪个线程来执行。线程的优先级用数字表示,范围从1到10一个线程的缺省优先级是5Thread.MTN_PRTORTTY二1Thread.MAX_PRT0RTTY二10Thread.N0RM_PRI0RITY=5使用下述线方法获得或设置线程对象的优先级。intgetPriority();voidsetPriority(intnewPriority);注意:优先级低只是意味着获得调度的概率低。

6、并不是绝对先调用优先级高后调用优先级低的线程。DemopublicclassTestThread2implementsRunnable{publicstaticvoidmain(String[]args){Thrcadthrcadl=newThread(newTcstThrcad2(1));Threadthread2=newThread(newTestThread2(2));tl・setPriority(1);t2.sctPriority(10);threadl.start();t

7、hread2.start();}publicvoidrun(){for(inti=0;i<100;i++){System,out.println(this.threadld+〃:〃+i);}}}状态新生状态:用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(rurmeiblc)就绪状态:处于就绪状态的线程已经具备了运行条件,但还没有分配到CPU,处于线程就绪队列,等待系统为其分配CPU。等待状态并不是执行状态,当系统选定

8、一个等待执行的Thread对象后,它就会从等待执行状态进入执行状态,系统挑选的动作称Z为“cpu调度”。一旦获得CPU,线程就进入运行状态并门动调用门己的nm方法。运行状态:在运行状态的线程执行自己的run方法中代码,宜到调用其他方法而终止、或等待某资源而阻塞或完成任务而死亡。如果在给定的时间片内没有执行结束,就会被系统给换下来回到等待执行状态。阻塞状态:处于运行状态的线程在某些情况下,如执行了sleep(睡眠)方法,或等待I/O设备等资源,将让出CPU并暂吋停止自己的运行,进入阻塞状态。在阻塞状态的线程不能进入就绪队列。只冇当引起阻塞的

9、原因消除时,如睡眠时间已到,或等待的i/o设备空闲卜•來,线程便转入就绪状态,重新到就绪队列中排队等待,被系统选屮后从原来停止的位置开始继续运行。死亡状态:死亡状态是线程生命周期屮的最后一个阶

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。