网站大量收购闲置独家精品文档,联系QQ:2885784924

08JavaThread全解.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08JavaThread全解

Java多线程 Java多线程 IO部分提问 讲一下流的分类 讲一下如何将一个对象写入文件中。 如何从键盘读取内容 随机访问文件使用哪个类解释seek, getFilePointer, skipBytes()方法的含义。 向一个文件中写入的基本过程 从一个文件中读取的基本过程 实现线程的二种方式 根据自已理解讲一下线程和进程的区别 Thread.sleep()和Thread.yield()的含义 讲一下线程状态和生命周期 课堂练习,卖票程序为什么可以卖到-1张和-2张票。 同步即(synchronized)的应用场景 Wait和notify的含义和注意事项。 如何停止一下线程 Java多线程 进程与线程概念 创建和启动Java线程 线程状态和线程控制 多线程的互斥与同步 线程的通讯 死锁的概念 进程与线程 进程一般是对操作系统而言的。例如,你打开word编辑文档,同时打开outlook收取邮件。我们可以说这时系统内有两个进程在运行。即多个程序几乎在同一时间执行多个任务。 线程一般是对某一程序而言的。如上例,你打开outlook收新邮件的同时,还可以看已下载的邮件,这两件事没有相互干扰,那么我们说此时这一程序中至少有两个线程在运行。即每一个程序在同一时间内执行多个任务。 进程与线程 从逻辑的观点来看,多线程意味着一个程序的多行语句同时执行,但是多线程并不等于多次启动一个程序,操作系统也不会把每个线程当作独立的进程来对待: 进程与线程 两者的粒度不同,是两个不同层次上的概念。进程是由操作系统来管理的,而线程则是在一个程序(进程)内。 (可以看看win2000的任务管理器) 不同进程的代码、内部数据和状态都是完全独立的,而一个程序内的多线程是共享同一块内存空间和同一组系统资源,有可能互相影响。 多线程 线程和多线程 线程的概念 线程的调度 调度策略的类型有二种 时间片 抢占式:高优先级的线程抢占CPU Java的调度方法 同优先级线程组成先进先出队列,使用时间片策略 对高优先级,使用优先调度的抢占式策略 线程 虚拟的CPU,由java.lang.Thread类封装和虚拟CPU来实现。 CPU所执行的代码,传递给Thread类对象。 CPU所处理的数据,传递给Thread类对象。 创建线程(二种方式及比较) 通过java.lang.Thread来创建一个线程 Thread的常用构造器: Thread() Thread(Runnable target) Thread(Runnable target, String name) 并指定线程名称 Thread(String name) 启动线程 每个线程都是通过某个特定Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。 使用start()方法,线程进入Runnable(可运行)状态,它将向线程调度器注册这个线程。 调用start()方法并不一定马上会执行这个线程,正如上面所说,它只是进入Runnable 而不是Running。 注意,不要直接在程序中调用线程的run()方法。 创建并启动线程例子(例:TestThread) public class TestThread extends Thread{ public void run(){ for(int i = 0;i100;i++) System.out.println(Count:+i); } public static void main(String[] args){ TestThread tt = new TestThread(); //注意,不要直接调用run方法 tt.start(); } } 使用Runnable接口 优点是由于继承了Thread后,类再不能继承别的类,所以一般我们采用实现Runnable接口的方法来创建线程。 提供一个实现接口Runnable的类,实现run()方法。 得到这个类的实例A。 New 一个Thread对象,同时A作为参数传入。 例如:Thread runner=new Thread(A); 调用start启动线程 例如:runner.start(); 用Runnable创建线程(例: RunnableThread ) public class RThread implements Runnable{ //实现接口Runnable中的run方法 public void run(){ for (int k = 0;k10;k++){ System.out.println(Count:+k); } } … … } Runnable接口 使用Runnabl

文档评论(0)

0022515 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档