文档介绍:Java语言与JBuilder应用初步第八章多线程
本章要点
如何创建一个多线程程序
多线程程序的设计要点
线程间的同步
如何创建一个多线程程序
线程的概念
一个线程就是一段连续执行的程序
连续执行的含义:
程序从起始点开始运行
每次执行一条语句
语句可能有条件判断、循环、函数,但每次只有一条语句在执行
程序最后在终点退出
如何创建一个多线程程序
线程与可执行程序的区别
线程不是一个完整的可执行程序,它不能自动开始
线程在程序中运行,由程序来启动一个线程
我们前面学到的程序,其核心都是一个线程
程序的作用是给线程加上一段创建并启动线程的代码
如何创建一个多线程程序
多线程的概念
如果一个程序中同时启动了两个或更多个线程,则称为多线程程序
有些应用程序需要做到“一心二用”,一个在前台随时听候用户调遣,另一个在后台完成用户交待的工作
利用多线程程序就可以做到这一点,只需要让程序启动两个线程,一个在前台接受用户指令,另一个在后台进行具体工作
如何创建一个多线程程序
多线程程序的应用
应用非常广泛,常用程序几乎都是多线程
多线程的典型例子:IE浏览器
利用浏览器浏览网页时,受速度限制,网页不可能一下子就全部显示出来
对于单线程程序,我们只能耐心地等待网页全部显示出来,然后才能继续控制浏览器
多线程程序:线程一,下载并显示网页
线程二,在前台响应用户的输入,如果用户想翻动页面,线程二会立即做出响应
如何创建一个多线程程序
多线程程序演示:龟兔赛跑程序
源程序见教材
程序结构说明:
ThreadDemo类:程序的入口类
main函数:入口函数,创建并启动两个线程
RabbitThread类:兔子线程类
run函数:模拟兔子跑步的函数
TortoiseThread类:乌龟线程类
run函数:模拟乌龟跑步的函数
如何创建一个多线程程序
程序第1次运行的结果
如何创建一个多线程程序
程序第2次运行的结果
如何创建一个多线程程序
运行结果对比
程序运行时,主程序中会自动创建一个兔子线程和一个乌龟线程
两个线程是先后创建的
但线程的运行过程是独立的
对比两次运行结果,虽然两次都是兔子先出发但两次比赛的结果并不相同
这正是因为两个线程是独立运行的结果