- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多线程参考文档
线程的基本概念
线程的创建和启动
线程的调度和优先级
线程的状态控制
线程的同步
线程的基本概念
多线程编程的意义:
多线程可以使程序具有两条或两条以上的并发执行的路径,这样可以改善程序的响应的性能,提高资源的利用率
线程的概念:
进程:一个运行的程序,可以同时并发多个线程。(进程是一个静态的概念,当我们把程序的代码调入内存(代码区),放入并没有执行。说明一个进程已经创建好了。
我们所说的进程开始执行是说这个进程中的主线程开始执行了。
线程:在进程的内部,划分出多个顺序执行的流程。一个线程就是一个独立的执行路径。
进程和线程的区别:
每一个进程都有独立的代码和数据空间,每启支一个程序就启动了一个进程。进程间的切换会有较大的开销。每一个进程可以启动几个线程.
线程是最小的执行单位,多个线程共享内存,从而极大地提高了程序的运行效率。线程不能够独立执行,必须依存在进程中。
宏观上并行(cpu的执行效率非常高,它会把自已的执行时间划分为很多个小时间片,然后把这些时间片分给要执行的线程),微观上串行(在任何一个时间点上只能有一个线程在执行)。
线程的创建和启动
Java的线程是通过java.lang.Thread类来实现的。也就是说java中的线程有两方面的含义,一个是一条独立的执行路径。二是java.lang.Thread类或其子类的一个对象。
在java中开始线程有两种方式:一是继承Thread类,二是实现Runnable接口。
每个线程都是通过某个特定的线程对象所对应的run()方法来完成其操作,方法run()称为线程体
开发一个线程的关键是给线程指定其启动之后要执行的任务。(在run方法中)
两种方式定义自已的线程:
继承Thread类:
继承Thread类的类便具有了线程的能力.采用此方法最重要的重写run方法:
Class 类名 extends Thread {
Public void run(){
//线程体
}
}
实现Runnable接口:
在Runnable接口中有一个抽象的方法run(),实现Runnable接口的类就具有描述线程任务的能力.
两种方式的比较:
都可以得到一条独立的执行路径。
继承Thread类虽然简单,但继承Thread类之后就不能再继承其它的类,这在有些情况下会影响开发。
实现Runnable接口既不影响继承其它的类,也不影响实现其它的接口,灵活性更好。
创建线程对象
继承Thread类的方式:
对于继承Thread类,其自身就是一个线程类,在创建线程类对象时就创建了。
Thread th = new MyThread();
实现Runnable接口方式:
对于实现Runnable接口它本身不是一个线程类,只是在该类中通过实现run方法指出了线程需要完成的任务,然而,若想得到一个线程,必须创建线程类对象或其子类对象,这时就需要使用Thread的特定的构造器来完成这个任务。
启动线程:
当线程对象创建完成后,其还只是一个普通的对象,并没有成为一条独立的执行路径,想让其成为一条独立的执行路径必须进行启动,线程没有启动的情况下,可以像调用其他对象的方法一样调用线程对象中的任何可见方法。
Run方法可以作为普通的方法一样调用,但调用run方法不代表创建了一个独立执行路径。
若要启动一个线程,只需调用线程对象的start()方法即可。
线程的状态:
新建状态:用new语句创建的线程对象处于新建状态,此时它和其他的java对象一样,仅仅在堆中分配内存
就绪状态(可运行态):当一个线程对象创建之后,其它线程调用它的Start()该线程就进入就绪状态。处于这种状态的线程位于可运行池中,等待cpu的时间片(使用权)
运行态:处于这种状态的线程占用cpu,执行程序代码,只有处于就绪态的线程才有机会进入运行态。
阻塞状态:
阻塞状态是指线程因为某些原因放弃cpu暂时停止运行,当线程处于阻塞状态时,java虚拟机不会给它分配cpu,直到线程重新进入就绪状态,它才有机会转到运行状态。
阻塞状态分三种:
位于对象等待队列中的阻塞状态:当线程处于运行状态时,如果执行了某个对象的wait()方法,java虚拟机就会把线程放到这个对象的等待队列中。
位于对象锁池中的阻塞状态:当线程处于运行状态,试图获得某个对象的同步锁时,如果该对象的同步锁已经被其他的线程占用,java虚拟机就会把这个线程放到这个对象的锁池中
其他阻塞状态:当前线程执行了sleep方法,或者调用其他线程的join()方法,或者发生了i/o请求,就会进入这种状态。
死亡状态:
当线程退出run()方法时,就进死亡状态,该线程生命周期结束。线程有可能是正常结束,也有可能是遇到异常而退出,不管线程正常结束还是异常结束,都不
您可能关注的文档
- 教案12单元.doc
- 09级机械制图期末试卷2010年6月.doc任春红b.doc
- 9年级单选精练.doc
- 中石化工程审批意见签署范例.doc
- CS服务器架设.doc
- 企业信息化实施的战略与战术原则.ppt
- 高中地理第五篇单元复习.ppt
- 财务管理研究前沿.doc
- 科学发展观“三个一”青年活动总结.doc
- 竣工总卷目录.doc
- 2025年专题党课讲稿:统筹推进深层次改革和高水平开放与2025年党风廉政建设专题党课讲稿:统一思想、提高认识,推动党风廉政建设工作不断向纵深发展(2篇文).docx
- 2025年纪检机关纪委监委专题党课讲稿:继承光荣传统,做自我革命的表率、遵规守纪的标杆,打造忠诚干净担当、敢于善于斗争的纪检监察铁军与2025年学校教师专题学习党课讲稿:牢记嘱托以新气象新作为推进学校思政课建设【2篇文】.docx
- 2025年【3篇】高等学校教师专题党课学习讲稿例文.docx
- 2025年党风廉政建设专题学习辅导党课讲稿:加强党风廉政建设,勇于担当敢于作为与2024年铸牢中华民族共同体意识党课讲稿:铸牢中华民族共同体意识,书写同心共筑中国梦的崭新篇章2篇文.docx
- 2025年学校教师专题学习党课讲稿3篇范文.docx
- 2025年民政局民政系统专题党课学习讲稿【3篇】供参考.docx
- 2025年铸牢中华民族共同体意识党课讲稿:铸牢中华民族共同体意识,书写同心共筑中国梦的崭新篇章与2025年纪检监察机关专题党课讲稿:做好“四为”,做一名合格纪检监察干部(2篇文).docx
- 三篇文2025年学校教师专题学习党课讲稿.docx
- 2025年纪检监察机关专题党课讲稿:用好纪律这把管党治党“戒尺”与2025年民政局民政系统专题学习党课讲稿:强化党建引领,奋力推进民政事业高质量发展2篇文.docx
- 2025年党风廉政建设专题学习辅导党课讲稿:坚守底线,廉洁从政,以忠诚担当的干劲加强队伍党风廉政建设与2025年专题党课讲稿:坚守底线,廉洁从政,以忠诚担当的干劲加强队伍党风廉政建设【2篇文】.docx
文档评论(0)