第8章线程多线程编程是提高应用程序性能的重要手段之一
Java平台从开始就被设计成为多线程环境,从语言级上支持多线程
在Java语言中,提供了创建、启动、调度、同步等各种线程管理方法,下面会进行详细介绍
1什么是线程多线程编程的目的是最大限度地利用CPU资源
当某一线程的处理不需要占用CPU,而只和I/O、内存等资源打交道时,让需要占用CPU资源的其他线程有机会获得CPU资源
要掌握多线程编程,需要弄清如下两个区别
1.进程与线程的区别最初在Unix等多用户、多任务操作系统环境下,为了提高操作系统的并行性和资源利用率,提出了进程的概念
进程首先是个动态的过程,是程序的一次执行
进程用于表示应用程序在内存环境中执行的基本单元,通常有如下一些特点
进程是操作系统环境中的基本成分、是系统资源分配的基本单位
进程在执行过程中有内存单元的初始入口点,并且进程存活过程中始终拥有独立的内存地址空间
进程的生存期状态包括创建、就绪、运行、阻塞和死亡等类型
1.进程与线程的区别从用户角度来看,进程是应用程序的一个执行过程
从操作系统核心角度来看,进程代表的是操作系统分配的内存、CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境
随着对计算能力需求的不断增长,计算机系统中的资源也显得越发宝贵
频繁的进程状态切换会消耗大量的系统资源,为解决此问题,提出了线程的概念
线程仍然是处理器调度的基本单位,但不再是资源分配的单位
线程的状态切换比进程切换的负担要小得多
Java语言从开始就被设计成为多线程环境,从语言级别上支持多线程
2.线程对象和线程的区别另一个重要的区别是线程对象和线程的区别
线程对象是指可以产生线程的对象,如在Java语言中的Thread对象、Runnable对象
线程是指正在执行的一个指令序列
在Java语言中是指从一个线程对象的start()方法