欢迎来到天天文库
浏览记录
ID:61906631
大小:208.50 KB
页数:23页
时间:2020-02-07
《第22讲 Java高级编程(一).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第22讲Java高级编程(一)教学目标理解多线程程序设计的基本思想掌握多线程的实现和线程的同步与控制理解Java网络编程的基本思想掌握基于Socket的低层Java网络编程与基于UDP的Java网络编程,以及基于无连接的数据报通信编程理解JDBC的基本思想掌握数据源的建立和数据库的访问多线程程序设计支持多线程——Java可以让不同的程序块同时运行,可以达到处理多任务的目的。所谓的线程(thread)是指程序的运行流程,多线程的技术使单个程序内部也可以在同一时刻执行多个代码段,完成不同的任务,这种机制称为多线程。Java语言
2、利用多线程实现了一个异步的执行环境。例如,在一个网络应用程序里,可以在后台运行一个下载网络数据的线程,在前台则运行一个线程来显示当前下载的进度,以及一个用于处理用户输入数据的线程。Java多线程机制是通过Java类包java.lang中的类Thread实现的,Thread类封装了对线程控制所必需的方法。classSTextendsThread{publicST(Stringstr){super(str);}publicvoidrun(){StringB[]={"起床","早饭","上班","下班"};StringS[]={
3、"备课","上课","布置作业","下课"};StringName=null;Name=getName();for(inti=0;i<4;i++){if(Name.equals("B")){System.out.println(Name+":"+B[i]);try{sleep((long)(Math.random()*1000));}catch(InterruptedExceptione){}}if(Name.equals("S")){System.out.println(Name+":"+S[i]);try{sleep(
4、(long)(Math.random()*1000));}catch(InterruptedExceptione){}}}}}单线程实现示例单线程实现示例(续)publicclassEx12_1{publicstaticvoidmain(Stringargs[]){STs1=newST("B");STs2=newST("S");s1.run();s2.run();}}运行结果:B:早饭B:上班B:下班S:备课S:上课S:布置作业S:下课程序分析:try块中sleep()方法只是简单地告诉线程休息多少毫秒,其参数为休息时间。
5、当这个时间过去后,线程即可继续执行。当某个线程睡眠时,sleep()并不占用系统资源,其他某一线程可继续工作。多线程的实现单线程的限制——要运行s2.run()方法,一定要等到s1.run()运行完毕才行。激活多个线程——同时运行s1.run()、s2.run()方法使得上述结果交叉输出。实现多线程的方法:在类里激活线程此类必须是扩展自Thread类,extendsThread线程的处理必须编写在run()方法内。run()方法是定义在Thread类中的一个方法。使用接口实现多线程多线程实现示例classSTextends
6、Thread{publicST(Stringstr){super(str);}publicvoidrun(){StringB[]={"起床","早饭","上班","下班"};StringS[]={"备课","上课","布置作业","下课"};StringName=null;Name=getName();for(inti=0;i<4;i++){if(Name.equals("B")){System.out.println(Name+":"+B[i]);try{sleep((long)(Math.random()*1000))
7、;}catch(InterruptedExceptione){}}if(Name.equals("S")){System.out.println(Name+":"+S[i]);try{sleep((long)(Math.random()*1000));}catch(InterruptedExceptione){}}}}}多线程实现示例(续)publicclassEx12_2{publicstaticvoidmain(Stringargs[]){newST("B").start();newST("S").start();}}
8、运行结果:第一次运行第二次运行第三次运行B:起床B:起床B:起床S:备课S:备课S:备课S:上课B:早饭S:上课S:布置作业S:上课B:早饭B:早饭B:上班B:上班S:下课S:布置作业B:下班B:上班B:下班S:布置作业S:下班S:下课S:下课程序分析:程序中的main()方法中构造了两个ST类的线程,
此文档下载收益归作者所有