- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Thread的
MITTING !
chenmh2@
UNRE
《多线程》
一.线程:线程是一个并发执行的顺序流,一个进程包括多个顺序执行
流程,这执行流程称为线程.线程是一个操作系统创建并维
护的一个资源,对操作系统来说JVM就是一个进程.对于单
CPU系统来说,某一个时刻只可能由一个线程在运行。
一个Thread对象就表示一个线程。
线程由三部分组成:
(1).CPU分配给线程的时间片
(2).线程代码(写在run方法中)
(3).线程数据
进程是独立的数据空间,线程是共享的数据空间.
线程对象存在于虚拟机堆空间的一块连续的地址空间(静态)
注意:1.线程是动态的,与线程对象是两回事.
2.线程对象与其他对象不同的是线程对象能够到底层去申
请管理一个线程资源。
3.只有对线程对象调用start()方法才是到底层去申请管理
一个线程资源。
4.任务并发执行是一个宏观概念,微观上是串行的。
二.进程的调度
进程的调度是由OS 负责的 (有的系统为独占式,有的系统为共享
式,根据重要性,进程有优先级)。由OS 将时间分为若干个时间
1
MITTING !
chenmh2@
UNRE
片。JAVA 在语言级支持多线程。分配时间的仍然是OS。
三.线程有两种实现方式:
第一种方式:
class MyThread extends Thread{
public void run(){
需要进行执行的代码,如循环。
}
}
public class TestThread{
main(){
Thread t1=new Mythread();
T1.start();
}
}
只有等到所有的线程全部结束之后,进程才退出。
第二种方式:通过接口实现继承
Class MyThread implements Runnable{
Public void run(){
Runnable target=new MyThread();
Thread t3=new Thread(target);
Thread.start();//启动线程
}
}
四.下面为线程中的7 中非常重要的状态:
(有的书上也只有认为前五种状态:而将 “锁池”和 “等待队列”都
看成是“阻塞”状态的特殊情况:这种认识也是正确的,但是将“锁
池”和 “等待队列”单独分离出来有利于对程序的理解)
2
MITTING !
chenmh2@
UNRE
阻塞
初始 (1)(2)(3) 终止
①②③
可运行 运行
锁池 等待队列
注意:图中标记依次为
①输入完毕;②wakeup③t1 退出
⑴如等待输入 (输入设备进行处理,而CUP 不处理),则放入阻塞,
直到输入完毕。
⑵线程休眠sleep ()
⑶t1.join()指停止main(),然后在某段时间内将t1 加入运行队列,
直到t1 退出,main()才结束。
特别注意:①②③与⑴⑵⑶是一一对应的。
进程的休眠:Threadsle
原创力文档


文档评论(0)