Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

笔记

271 views

Published on

  • Login to see the comments

  • Be the first to like this

笔记

  1. 1. Java 多线程线程在进程基础上的一种划分。一个进程就表示一个程序,在一个程序上可以同时运行多个子程序,则这些子程序称为线程。 E-Mail:mldnqa@163.com
  2. 2. E-Mail:mldnqa@163.com
  3. 3. 进程:在一个时间段内只能完成一件事情。 A B,只能做一件事情线程:在进程基础上划分,之后在同一个时间段内可以比传统进程完成的功能更多。 A B,能多件事情 张三在公司上班,张三原本的业务是做打字员 打字一个工作即可。 == 进程 张三业务扩展。张三即可以做打字员,又可以做程序开发人员,也同时兼顾了卫生管理员 == 线程 CPU 只有一个,是指在同一个时间段内可以完成多个程序,但在同一个时间点内,只能有一个程序工作。 E-Mail:mldnqa@163.com
  4. 4. E-Mail:mldnqa@163.com
  5. 5. 那么该如何去实现多线程呢? 线程的实现需要操作系统的支持。 JAVA 中只需要关心程序,而程序具体是如何与底层交互的则不用去关心。 E-Mail:mldnqa@163.com
  6. 6. java.lang 此包为 JAVA 程序默认导入的包。一个类只要继承了 Thread 类,则表示此类就实现了多线程。如果在程序中直接去调用 run 方法,实际上只是类.方法的调用,而没有启动操作系统的支持。如果要执行一个线程,则要调用:public void start()方法通过 start() 调用的是子类中 run()方法。 此时的程序是交替运行的,不是像之前那样去调用 run()方法进行的顺序执行。问题? 一个类只能通过继承 Thread 类完成多线程,本身会有一个程序的局限 —— Java 只支持单继承,如果这个类需要再同时继承另外一个类的时候,则使用 Thread 类会发现无法做到。在 JDK 中为用户提供了一个 Runnable 接口,实现此接口也可以实现多线程。之前的程序继承的是 Thread 类,在 Thread 类提供了专门用于启动线程的操作 start()方法。 E-Mail:mldnqa@163.com
  7. 7. 通过查找 JDK 文档,可以发现在 Thread 类中有如下方法; public Thread(Runnable target)既然 Runnable 接口与 Thread 类都可以实现多线程,那么该选谁? · 实现接口,解决单继承局限。Runnable 接口与 Thread 类之间到底有什么关系?特点:继承 Thread 多个线程之间不能实现资源的共享,而实现了 Runnable 接口之后可以实现多个线程之间资源的共享。举例:火车票 售票点,100 张票 E-Mail:mldnqa@163.com
  8. 8. E-Mail:mldnqa@163.com

×