
Java语言程序设计第九章多线程编程Java
Java语言程序设计 第九章 多线程编程

9-1多线程编程概述1、线程和进程2、为什么需要多线程3、我们将学习多线程的哪些方面内容
9-1 多线程编程概述 1、线程和进程 2、为什么需要多线程 3、我们将学习多线程的哪些方面内容

1.进程和线程>进程是指运行中的应用程序,每一个进程都有自已独立的内存空间。一个应用程序可以同时启动多个进程。>线程是指进程中的一个执行流程,有时也称为执行情景。>线程和进程的主要区别在于:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源
➢ 进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应 用程序可以同时启动多个进程。 ➢ 线程是指进程中的一个执行流程,有时也称为执行情景。 ➢ 线程和进程的主要区别在于:每个进程都需要操作系统为其分配独立的内存 地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可 以共享同一块内存和系统资源。 1. 进程和线程

2.为什么需要多线程QIYI爱奇艺悦享品质
2. 为什么需要多线程

3.我们将学习多线程的哪些方面内容>Thread和Runnable>线程的生命周期>多线程常用API>生产者消费者实例及应用
3. 我们将学习多线程的哪些方面内容 ➢ Thread和Runnable ➢ 线程的生命周期 ➢ 多线程常用API ➢ 生产者消费者实例及应用

9-2 Thread和Runnable (9-3)1.Thread2.Runnable
9-2 Thread和Runnable(9-3) 1.Thread 2.Runnable

1. Threadpublic class MyThread extendsThread(public void run())1public class MyThread extends Thread(public void runOfor(int i = 1 ; i<=10 ; i++)System.out.println(Thread.currentThread().getName() +"--"+i)11人
public class MyThread extends Thread{ public void run(){} } 1. Thread public class MyThread extends Thread{ public void run(){ for(int i = 1 ; i<=10 ; i++){ System.out.println(Thread.currentThread().getName() + "-"+i); } } }

2. Runnablepublicclass MyThread implementsRunnable[public void run()1publicclassMyRunnableimplementsRunnable@Overridepublic void run() (for (int i = 1; i <= 10; i++) {System.out.println(Thread.currentThread().getName() +"--" + i);1人
public class MyThread implements Runnable{ public void run(){} } 2. Runnable public class MyRunnable implements Runnable { @Override public void run() { for (int i = 1; i <= 10; i++) { System.out.println(Thread.currentThread().getName() + "-" + i); } } }

3. Thread vS Runnable>资源共享>Java语言中只能继承一个类,但可以实现多个接口一般场景下,我们应尽量实现Runnable接口
3. Thread VS Runnable ➢ 资源共享 ➢ Java语言中只能继承一个类,但可以实现多个接口 一般场景下,我们应尽量实现Runnable接口

后台线程前台线程执行,后台线程执行:前台线程不执行,后台线程立即停止在start)之前用setDaemon(true);进行设置
后台线程 前台线程执行,后台线程执行; 前台线程不执行,后台线程立即停止 在start()之前用setDaemon(true); 进行设置