多线程学习指导书

上传人:lis****210 文档编号:165400857 上传时间:2022-10-27 格式:DOCX 页数:6 大小:33.82KB
收藏 版权申诉 举报 下载
多线程学习指导书_第1页
第1页 / 共6页
多线程学习指导书_第2页
第2页 / 共6页
多线程学习指导书_第3页
第3页 / 共6页
资源描述:

《多线程学习指导书》由会员分享,可在线阅读,更多相关《多线程学习指导书(6页珍藏版)》请在装配图网上搜索。

1、第一单元多线程学习指导书一:学习目标知识点知识点重要性掌握程度知识点关联线程与进程: 什么是线程 什么是进程 线程与进程关系高熟练学习线程过程中需要用到继承, 接口的实现,使用线程可以把占 据长时间的程序中任务放到后台 去处理,用户界面可以更加吸引 人线程的使用 创建和启动线程 线程调度高熟练二:重难点知识点1、重难点 1:线程的实现学习方法:1、编程时,必须确保线程不会妨碍同一进程的其他线程。 进程:进程就是应用程序的执行实例。 线程:线程是进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。 举例:进程就好像是我们看电视,线程就是耳朵在听,眼睛在看,我们的嘴巴在说 话或吃东西,手在织

2、毛衣。2、线程的使用步骤1) 定义一个线程2) 创建线程的实例3) 启动线程4) 终止线程3、定义一个线程 定义线程有两种方式,一种是通过继承 java.util.Thread 类来实现,另一种是通过实 现 java.util.Runnable 接口来实现,具体方法如下: 第一种方法:通过继承 java.util.Thread 类实现:语法:public class MyThread extends Thread步骤:1)定义Thread的子类,重写父类的run()方法public void run()while(countv100)count+;System.out.println(couo

3、nt 的值是:+count);2) 创建Thread子类的对象MyThread mt=new MyThread();3) 调用start()方法启动该线程mt.start();完整案例代码:通过继承Thread实现线程/MyThread 类package threads;public class MyThread extends Thread private int count=0;public void run()while(count100)count+; System.out.println(couont 的值是:+count);测试类package threads;public cla

4、ss TestMyThread public static void main(String args) MyThread mt=new MyThread();mt.start();/ start方法的作用该方法会使操作系统初始化一个新的线程,由这个新的线程来执行 线程对象的run方法。第二种方法:通过实现java.util.Runnable接口实现 语法: public class MyRunnable implements Runnable 步骤:1) 定义 Runnable接口的实现类实现其中的run()方法 public void run() while(count100) count

5、+; System.out.println(count 的值为:+count);2) 用new Thread(Runnable)的方式创建线程对象Thread thread=new Thread(new MyRunnable(); / 注意与第一种方法的区别3)调用start方式启动该线程 thread.start(); /注意与第一种方法的区别完整案例代码:通过实现java.util.Runnable接口实现接口public class MyRunnable implements Runnable private int count=0;public void run() while(cou

6、nt100)count+;System.out.println(count 的值为:+count);测试类public class TestMyRunnable public static void main(String args) Thread thread=new Thread(new MyRunnable();thread.start();知识点:1) 线程分类:系统级线程和用户级线程。系统级线程又称为核心级线程,负责管理调 度不同进程之间的多个线程,由操作系统直接管理。2) 多线程优势:进程间不能共享内存,但线程间共享内存非常容易。使用多线程实现 多任务并发比多进程的效率高。3) 多

7、线程开发的优势:改善用户体验。提高资源利用率。2、重难点 2:线程调度1)使用join()方法:阻塞指定的线程等到另一个线程完成以后再继续执行。案例代码:public class JoinTest extends Thread public JoinTest(String name)super(name);public void run()for(int i=0;i5;i+)System.out .println(getName()+ +i);public static void main(String args) for(int i=0;i10;i+)if(i=5)JoinTest temp

8、jt= new JoinTest(半路加入的线程); try tempjt.start();tempjt.join(); catch (InterruptedException e) / TODO Auto-generated catch block e.printStackTrace();System. out.println(Thread. currentThread ().getName() + +i);程序运行结果如下Problems Tasks 貝 ConsoleVterminteclA JoinTest J日阳 Appl症口main hiain 1main 2main 3rciai

9、n 4半路加天的线程0 半路加義:的线程1 半路加入的线程2 半路加入的线程3 半路加A的线程4main 5 main 6 rtiain 7 inain 8 main 9main 方法启动时就会创建当前主线程 。join加入时会阻塞当前主线程,直到join线程执行结束之后,主线程继续执行。2)使用sleep()方法:使线程休眠指定的时间案例public class Wait public static void bySec(long s)for(int i=0;is;i+)System. out.println(i+1+秒);try Thread. sleep (1000); catch (I

10、nterruptedException e) / TODO Auto-generated catch block e.printStackTrace();public class Testsleep public static void main(String args) System.out.println(Wait);Wait. bySec (5);/让主线程等待5秒System.out. println( start ) ; /提示恢复执行运行结果如下:3)使用yield()方法:yield()使线程进入可运行的情况。因而线程可以竞争抢资源。 案例如下:public class TheT

11、hread extends Thread public void run()for(int i=0;i5;i+)System.out. println(第一个线程的第+(i+1) + 次运行); Thread. yield ();public class MyNewThread extends Thread public void run()for(int i=0;i5;i+)System.out. println(第二个线程的第+(i+1) + 次运行); Thread. yield ();public class YeildTest public static void main(Stri

12、ng args) TheThread mt= new TheThread(); MyNewThread mnt= new MyNewThread(); mt.start();mnt.start();Problem5CteFmiwtedA VeildTest J日旳 Applieticin UPrcigr日m File诽一个线程的第1灰运行 第二話线程的第1択运行 第一第线程的第召欢运行 第二茶线程的第2枕运行 第二个銭程的第3庆运行 第一个线程的第旨次运行 第二个线程的第理祝运行 第一个线程的第理汝运行 第二个线程的第5次运行 第一令线程的第5次运行注意点:a)b)c)sleep()方法使当前线程转入被阻塞的状态,而yield()方法使用当前线程转入可运行 状态。sleep()方法总是强制当前线程停止执行,而yield()则不一定。 使用sleep()方法需要捕获异常,而yield()不需要。作业内容:见作业附件三:补充说明:多线程的使用还会结合到后面学习到的网络编程的应用。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!