10.1线程概述 ⊙传智播客.黑马程序员 改变中国T教育我们正在行动 说明: 口在多任务操作系统中,表面上看是支持进程并发执行的,例如可以一边听音乐 一边聊天,但实际上这些进程并不是在同一时刻运行的。 口在计算机中,所有的应用程序都是由CPU执行的,对于一个CPU而言,在某 个时间点只能运行一个程序,也就是说只能执行一个进程,操作系统会为每一 个进程分配一段有限的CPU使用时间,CPU在这段时间中执行某个进程,然 后会在下一段时间切换到另一个进程中去执行。 口由于CPU运行速度非常快,能在极短的时间内在不同的进程之间进行切换,所 以给人以同时执行多个程序的感觉。 yx.boxuegu.com
✎ 10.1 线程概述 说明: 在多任务操作系统中,表面上看是支持进程并发执行的,例如可以一边听音乐 一边聊天,但实际上这些进程并不是在同一时刻运行的。 在计算机中,所有的应用程序都是由CPU执行的,对于一个CPU而言,在某 个时间点只能运行一个程序,也就是说只能执行一个进程,操作系统会为每一 个进程分配一段有限的CPU使用时间,CPU在这段时间中执行某个进程,然 后会在下一段时间切换到另一个进程中去执行。 由于CPU运行速度非常快,能在极短的时间内在不同的进程之间进行切换,所 以给人以同时执行多个程序的感觉
10.1线程概述 ⊙传智播客.黑马程序员 改变中国T教育我们正在行动 10.1.2线程 定义:在多任务操作系统中,每个运行的程序都是一个进程,用来执行不同的任 务,而在一个进程中还可以有多个执行单元同时运行,来同时完成一个或多个程 序任务,这些执行单元可以看做程序执行的一条条线索,被称为线程。 注意:操作系统中的每一个进程中都至少存在一个线程,当一个Java程序启动时 ,就会产生一个进程,该进程中会默认创建一个线程,在这个线程上会运行 main0方法中的代码。 yx.boxuegu.com
✎ 10.1 线程概述 定义:在多任务操作系统中,每个运行的程序都是一个进程,用来执行不同的任 务,而在一个进程中还可以有多个执行单元同时运行,来同时完成一个或多个程 序任务,这些执行单元可以看做程序执行的一条条线索,被称为线程。 注意:操作系统中的每一个进程中都至少存在一个线程,当一个Java程序启动时 ,就会产生一个进程,该进程中会默认创建一个线程,在这个线程上会运行 main()方法中的代码。 10.1.2 线程
10.1线程概述 ⊙传智播客.黑马程序员 改变中国T教育我们正在行动 10.1.2线程 单线程与多线程 程序 程序 线程 线程1 线程2 线程3 (a)单线程 (b)多线程 说明: 口单线程都是按照调用顺序依次往下执行,没有出现多段程序代码交替运行的效 果,而多线程程序在运行时,每个线程之间都是独立的,它们可以并发执行。 口多线程可以充分利用CUP资源,进一步提升程序执行效率。 口多线程看似是同时并发执行的,其实不然,它们和进程一样,也是由CU控制 并轮流执行的,只不过CPU运行速度非常快,故而给人同时执行的感觉。 yx.boxuegu.com
✎ 10.1 线程概述 说明: 单线程都是按照调用顺序依次往下执行,没有出现多段程序代码交替运行的效 果,而多线程程序在运行时,每个线程之间都是独立的,它们可以并发执行。 多线程可以充分利用CUP资源,进一步提升程序执行效率。 多线程看似是同时并发执行的,其实不然,它们和进程一样,也是由CPU控制 并轮流执行的,只不过CPU运行速度非常快,故而给人同时执行的感觉。 10.1.2 线程——单线程与多线程 程序 线程1 线程2 线程3 程序 线程 (a)单线程 (b)多线程
10.2线程的创建 ⊙传智播客.黑马程序员 改变中国T教育我们正在行动 创建:Java为多线程开发提供了非常优秀的技术支持,在Java中,可以通过三 种方式来实现多线程。 继承Thread类,重写runO方法 实现Runnable接口,重写runO方法 实现Callable接口,重写callO方法,并使用Futrue来获取callO 方法的返回结果 yx.boxuegu.com
✎ 10.2 线程的创建 创建:Java为多线程开发提供了非常优秀的技术支持,在Java中,可以通过三 种方式来实现多线程。 init(FilterConfig filterConfig) 1 ➢ 继承Thread类,重写run()方法 2 ➢ 实现Runnable接口,重写run()方法 3 ➢ 实现Callable接口,重写call()方法,并使用Futrue来获取call() 方法的返回结果
10.2线程的创建 ⊙传智播客.黑马程序员 改变中国T教育我们正在行动 10.2.1 Thread类实现多线程 说明:Thread类是java.lang包下的一个线程类,用来实现Java多线程。 步骤: ①创建一个Thread线程类的子类(子线程),同时重写Thread类的runO方法; ②创建该子类的实例对象,并通过调用start0方法启动线程。 yx.boxuegu.com
✎ 10.2 线程的创建 说明:Thread类是java.lang包下的一个线程类,用来实现Java多线程。 步骤: ① 创建一个Thread线程类的子类(子线程),同时重写Thread类的run()方法; ② 创建该子类的实例对象,并通过调用start()方法启动线程。 10.2.1 Thread类实现多线程