欢迎来到天天文库
浏览记录
ID:41111460
大小:2.91 MB
页数:13页
时间:2019-08-16
《《Java程序设计及应用》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11讲:多线程编程(1)内容提要基本概念创建线程线程的生命周期前台线程与后台线程线程的分支与合并基本概念程序进程线程多线程创建线程创建线程有两种方式:通过继承Thread类通过实现Runnable接口创建线程——继承Thread类例程通过上面的例子,可以总结出该种方式的多线程编程的要点:(1)首先创建线程类(通过继承Thread类并覆盖run()方法);(2)其次启动线程(通过创建自定义线程类对象并调用其继承的start()方法)。初学者易犯的错误是:认为线程的启动执行只与run()方法有关,故第15~18行代码可以与下面的代码等价。
2、30ThreadTestt1=newThreadTest();31t1.start();//启动了一个线程32t1.start();//又启动了一个新的线程创建线程——实现Runnable接口例程通过该例程,可以总结出该种方式的多线程编程的要点:(1)首先创建线程类(通过实现Runnable接口的run()方法);(2)其次启动线程(通过创建自定义类对象,再使用该对象创建Thread类对象并调用其start()方法)。两种创建线程方式的比较两种线程创建方式中都有一个run()方法,这让我们猜测Thread和Runnable之间应该有关
3、系,查阅JDKAPI发现Thread类的声明为:publicclassThreadimplementsRunnable,这与使用第二种方式创建线程很类似,实际上不仅是类似,而且就是如此。第一种方式采用继承,但Java只允许单继承,故这样的自定义线程类就不能再继承其他的类了,这是一个缺陷,所以建议采用第二种方式来创建线程线程的生命周期调用start()RunnableRunning获得CPUBlocked结束Run()方法完毕前台线程与后台线程Java有两种线程:后台线程(也称为守护线程、精灵线程)与前台线程(也称为用户线程)。6.2节中
4、的例程都是前台线程,后台线程是一种在后台为前台线程提供通用性支持的线程,它并不是程序本身的一部分。这个模型也是来源于物理世界,例如演戏就有前台和后台,演员在前台上演戏,整个过程离不开后台的支持和服务。Thread类中的setDaemon(booleanon)方法用于设置线程的前台/后台模式:当参数on的值为true时,当前线程就设置为后台模式,为false则为前台模式。线程的分支与合并通过分支,线程由一个变成多个,从而产生并行处理,使用6.2节介绍的创建线程的两种方式中的任意一种都能实现线程的分支。这是说在一个线程中创建另一个线程的情况
5、,如果在main()方法中创建一个线程是不是就只有一个线程了?需要记住的是,Java进程都是多线程的,在启动一个Java应用时,就自动产生了一个线程(称为主线程或main线程),这个线程的运行方法就是我们再熟悉不过的main()方法,main()方法相当于普通线程中的run()方法。而线程的合并恰恰相反,把一个线程合并到另一个线程中,由并行处理转为顺序处理。例程小结基本概念创建线程线程的生命周期前台线程与后台线程线程的分支与合并作业习题6:1-6
此文档下载收益归作者所有