多线程在实际开发中用的很多,建议这一部分内容详细学好。
多线程(Multi-Thread)学习目标:
线程概念
线程的生命周期
线程的实现
线程的优先级
多线程的同步
线程组
1. 在学习线程之前,我们先来学习一下进程:
进程:执行中的程序(程序是静态的概念,进程是动态的概念)。
进程与线程的区别,进程与线程之间的关系是从属的关系
1) 多个进程的内部数据和状态都是完全独立的,而多线程是共享一块内存空间和一组系统资源,有可能互相影响.
2) 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。【注意】:线程一旦运行起来之后,是没法控制它们了
2. 线程概念
1). 什么是线程:线程就是程序中单独顺序的流控制。线程本身不能运行,它只能用于程序中。
图97-1:线程
2). 什么是多线程:多线程则指的是在单个程序中可以同时运行多个不同的线程执行不同的任务.
图97-2:多线程
说明:线程是程序内的顺序控制流,只能使用分配给程序的资源和环境。
3. 多线程编程的目的
1)多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需要占用CPU而只和I/O等资源打交道时,让需要占用CPU资源的其它线程有机会获得CPU资源。从根本上说,这就是多线程编程的最终目的。
4.单线程
当程序启动运行时,就自动产生一个线程,主方法main就在这个主线程上运行。比如在Eclipse中调试的时候在主线程中调试
【总结】:Java 中如果我们自己没有产生线程,那么系统就会给我们产生一个线程(主线程, main方法就在主线程上运行),我们的程序都是由线程来执行的。
详解请关注下一讲内容