欢迎来到天天文库
浏览记录
ID:33588680
大小:237.65 KB
页数:34页
时间:2019-02-27
《java语言程序设计教程(java 7)——入门与提高篇06》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章高级应用李绪成lixucheng@dl.cnhttp://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成主要内容•6.1多线程•6.2网络编程•6.3GUI编程http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成6.1多线程•6.1.1线程与进程•6.1.2Java中多线程实现的方式•6.1.3线程的名字•6.1.4线程的优先级•
2、6.1.5让线程等待•6.1.6实例:实现人能够同时说话和开车•6.1.7资源同步•6.1.8wait和notifyhttp://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成6.1.1线程与进程•进程可以看成是一个运行中的程序,每个应用就是一个运行的程序,可以看成是一个进程。操作系统提供会为每个进程分配内存空间和CPU时间等。多任务支持了多进程。•线程称为轻量级的进程,有自己的运行环境。线程存在于进程中,每个进程最少有一个线程
3、,线程分享进程的资源。例如程序中同时进行数据读取和数据处理,这样能够提高效率,这时候就需要两个线程。http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成6.1.2Java中多线程实现的方式•Java中提供了两种实现线程类的方式:–通过继承Thread类实现多线程;–通过实现Runnable接口实现多线程。http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提
4、高篇‐清华大学出版社‐李绪成通过继承Thread创建线程•继承Thread类实现线程类,需要覆盖run方法publicclassMyThreadextendsThread{publicvoidrun(){//定义线程要执行的代码}}•通过线程类创建线程对象:Threadt=newMyThread();Threadt=newMyThread("线程名字");•线程的启动通过start方法实现。http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐
5、清华大学出版社‐李绪成•【例6.1】编写两个线程类,第1个线程负责输出数字,第2个线程输出小写字母,然后编写测试程序创建这两个线程对象,并启动线程。因为计算机的计算速度非常快,所以必须循环的次数足够多才能看到效果。http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成使用Runnable实现多线程•需要实现run方法:publicclassMyThread2implementsRunnable{publicvoidrun(
6、){...}}•创建线程:Threadtt=newThread(newMyThread2());•线程的启动使用start方法。•【例6.2】使用Runnable接口实现同时输出数字和字母。http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成6.1.3线程的名字•通过继承Thread实现多线程:classMyThreadextendsThread{publicMyThread(Stringname){super(name
7、);}…}•通过实现Runnable接口实现多线程MyRunnabler=newMyRunnable();Threadt3=newThread(r,"线程3");http://blog.csdn.net/javaeeteacherJava语言程序设计教程(Java7)——入门与提高篇‐清华大学出版社‐李绪成•通过Thread对象的setName方法设置。•调用getName方法得到线程名字。•【例6.3】线程名字的使用http://blog.csdn.net/javaeeteacherJava语言程序设计教程(J
8、ava7)——入门与提高篇‐清华大学出版社‐李绪成6.1.4线程的优先级•默认情况下,一个程序的多个线程具有相同的优先级,也就是获得CPU的概率相同。可以通过设置线程的优先级来调整每个线程获得CPU机会的大小。•调用线程的setPriority方法设置优先级,参数表示优先级。优先级的最小值是1,最大值是9,默认值是5。•需要设置优先级的情况比较少。•【例6.4】线程的优先
此文档下载收益归作者所有