多线程的优势 ■多线程编程简单,效率高。使用多线程可 以在线程间直接共享数据和瓷源,而多进 程之间不能做到这一点 适合于开发服务程序 如Web服务、聊天服务等 适合于开发有多种交互接口的程序 如聊天程序的客户端、网络下载工具 适合于有人机交互又有计算量的程序 如字处理程序Word、 Excel等
多线程的优势 § 多线程编程简单,效率高。使用多线程可 以在线程间直接共享数据和资源,而多进 程之间不能做到这一点 § 适合于开发服务程序 § 如Web服务、聊天服务等 § 适合于开发有多种交互接口的程序 § 如聊天程序的客户端、网络下载工具 § 适合于有人机交互又有计算量的程序 § 如字处理程序Word、Excel等
线程的状态 Java的线程是通过Java的软件包 java. lang中 定义的类 Thread来实现的 生成一个 Thread类的对象之后,就产生了 线程。通过该对象实例,可以启动线程、终 止线程,或者暂时挂起线程等 Thread类本身只是线程的虚拟CPU,线程所 执行的代码是通过方法runO来完成的,方 法runO称为线程体 在一个线程被建立并初始化以后,Java的运彳 时系统就自动调用run(O方法,正是通过run(O方 法才使得建立线程的目的得以实现
线程的状态 § Java的线程是通过Java的软件包java.lang中 定义的类Thread来实现的 § 当生成一个Thread类的对象之后,就产生了一 个线程。通过该对象实例,可以启动线程、终 止线程,或者暂时挂起线程等 § Thread类本身只是线程的虚拟CPU,线程所 执行的代码是通过方法run() 来完成的,方 法run()称为线程体 § 在一个线程被建立并初始化以后,Java的运行 时系统就自动调用run()方法,正是通过run()方 法才使得建立线程的目的得以实现
线程的状态 线程一共有四种状态:新建(new)、可运 行状态( runnable)、死亡(dead)及堵塞 (blocked 等待 waitO 睡眠 就绪 I/O流阻塞 挂起 new Thread 运行 阻塞 创建新线程 可运行态 不可运行态 stop run(exit resume topo notify/notify pO 死亡 O指令
线程的状态 § 线程一共有四种状态:新建(new)、可运 行状态(runnable)、死亡(dead)及堵塞 (blocked) new Thread() 创建新线程 可运行态 start() 不可运行态 stop() stop() 死亡 yield() stop() run()exit suspend() sleep() wait() I/O流阻塞 resume() notify()/notify All() I/O指令 等待 睡眠 挂起 阻塞 就绪 运行
新建 线程对象刚刚创建,还没有启动,此时还 处于不可运行状态 Thread thread new Thread( test") 此时线程 thread处于新建状态,但已有了相应的 内存空间以及其它资源
新建 § 线程对象刚刚创建,还没有启动,此时还 处于不可运行状态 Thread thread = new Thread(“test”) 此时线程thread处于新建状态,但已有了相应的 内存空间 以及其它资源
可运行状态 runnable 此时的线程已经启动,处于线程的mun0方 法之中。这种情况下线程可能正在运行, 也可能没有运行,只要CPU一空闲,马上就 调用线程的sar0方法可使线程处于“可运 行”状态 thread. start
可运行状态runnable § 此时的线程已经启动,处于线程的run()方 法之中。这种情况下线程可能正在运行, 也可能没有运行,只要CPU一空闲,马上就 会运行 § 调用线程的start()方法可使线程处于“可运 行”状态 thread.start();