- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ThinkinginJava14(多线程)
Java编程思想 第十四章:多线程 引言 进程(process)是一种 “自包容”的独立运行程序,有自己的地址空间。 运行在一个进程(正在运行的应用程序)内的执行单元称为线程 一个进程可以包含多个线程 Swing 总是有至少一个事件调度线程 线程 线程并发运行 线程共享 CPU 时间 反应灵敏的用户界面 由于CPU“全心全意”为那些计算服务,所以对用户的输入十分迟钝,几乎没有什么反应。 Counter1.java 线程机制多少降低了一些计算效率,但无论程序的设计,资源的均衡,还是用户操作的方便性,都从中获得了巨大的利益。综合考虑,这一机制是非常有价值的。 继承自 Thread (1)继承自 Thread:用线程类创建一个线程 类Thread拥有产生、运行线程的必要机制 (2)使用接口 Runnable: 需要由线程对象实现 Run 方法 Run 方法(须自己覆写)通常是一个循环,用它来执行线程的任务 继承自 Thread //: c14:SimpleThread.java ( p596 ) // Very simple Threading example. public class SimpleThread extends Thread { private int countDown = 2; // countDown = 5 private static int threadCount = 0; private int threadNumber = ++threadCount; public SimpleThread() { System.out.println(Making + threadNumber); } public void run() { while(true) { System.out.println(Thread + threadNumber + ( + countDown + )); if(--countDown == 0) return; } } Thread 的构造函数 public Thread( ) public Thread(String name ) public Thread(Runnable target ) public Thread(Runnable target, String name ) public Thread(ThreadGroup group, Runnable target ) public Thread(ThreadGroup group, String name ) Thread 常用的方法 isAlife: 判断线程是否在执行状态 join: 等待线程执行完毕 suspend: 暂停线程执行 resume: 令被 suspend 暂停的线程继续执行 run: 真正执行的程序块 sleep: 暂停线程片刻 start: 开始线程执行 stop: 结束线程执行 yield: 将执行权利交给其他线程 使用接口runnable (结合线程和程序主类) 本例将主程序类变成一个线程,这种形式可将主程序类与线程类合并到一起 接口runnable机制 对GUI程序,主程序类必须从Frame或Applet继承,必须使用接口Runnable 当我们启动程序时,会创建一个Runnable(可运行的)对象,但不会自行启动线程。线程的启动必须明确进行。 现在run()位于类内,但它在init()结束以后仍处在“睡眠”状态 按下start按钮,线程以 new Thread(Counter3.this) 方式创建(若线程尚不存在) 为了从一个Runnable对象产生线程,需将Runnable对象传入Thread构造函数,产生一Thread对象。 再调用这个线程的start(),如 selfThread.start(); 它的作用是执行常规初始化操作,然后调用run()。 使用接口 runnable //UseRunnable.java class UseRunnable { public static void main (String args[]) { int i; MyMultiThreadClass[] aMTCArray = new MyMultiThreadClass[3]; Thr
文档评论(0)