Java语言程序设计:第8章 线程
74页1、第八章第八章 线程线程JAVA语言程序设计目录目录l多线程编程基础多线程编程基础l线程的生命周期线程的生命周期l线程的优先级线程的优先级l本章小结本章小结28.1 多线程编程基础多线程编程基础l本节内容本节内容线程的概念Thread类Runnable接口线程间的数据共享多线程的同步控制线程之间的通信后台线程38.1.1 线程的概念线程的概念l进程和线程的区别进程和线程的区别l进程进程一个独立程序的每一次运行称为一个进程,例如l用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程设置一个进程要占用相当一部分处理器时间和内存资源大多数操作系统不允许进程访问其他进程的内存空间,进程间的通信很不方便,编程模型比较复杂 多线程编程基础4l线程线程一个程序中多段代码同时并发执行,称为多线程通过多线程,一个进程表面上看同时可以执行一个以上的任务并发创建线程比创建进程开销要小得多,线程之间的协作和数据交换也比较容易Java是第一个支持内置线程操作的主流编程语言多数程序设计语言支持多线程要借助于操作系统“原语(primitives)”8.1.1 线程的概念线程的
2、概念(续续)多线程编程基础58.1.2 Thread类类lThread类类在Java程序中创建多线程的方法之一是继承Thread类 封装了Java程序中一个线程对象需要拥有的属性和方法从Thread类派生一个子类,并创建这个子类的对象,就可以产生一个新的线程。这个子类应该重写Thread类的run方法,在run方法中写入需要在新线程中执行的语句段。这个子类的对象需要调用start方法来启动,新线程将自动进入run方法。原线程将同时继续往下执行Thread类直接继承了Object类,并实现了Runnable接口。它位于java.lang包中,因而程序开头不用import任何包就可直接使用多线程编程基础68.1.2 Thread类类(续续)例例8_1l在新线程中完成计算某个整数的阶乘在新线程中完成计算某个整数的阶乘public class Ex8_1 public static void main( String args ) System.out.println(main thread starts);FactorialThread thread=new FactorialThread(
3、10); thread.start(); System.out.println(main thread ends ); class FactorialThread extends Thread private int num; public FactorialThread( int num ) this.num=num; 多线程编程基础7public void run() int i=num; int result=1; System.out.println(new thread started ); while(i0) result=result*i; i=i-1; System.out.println(The factorial of +num+ is +result); System.out.println(new thread ends); l运行结果运行结果main thread startsmain thread endsnew thread startedThe factorial of 10 is 3628800new thread ends8.1.2 Thread类类
4、(续续)例例8_1运行结果运行结果多线程编程基础8l结果说明结果说明main线程已经执行完后,新线程才执行完main函数调用thread.start()方法启动新线程后并不等待其run方法返回就继续运行,thread.run函数在一边独自运行,不影响原来的main函数的运行l源程序修改源程序修改如果启动新线程后希望主线程多持续一会再结束,可在start语句后加上让当前线程(这里当然是main)休息1毫秒的语句:try Thread.sleep(1); catch(Exception e);8.1.2 Thread类类(续续)例例8_1修改修改多线程编程基础9l修改后运行结果修改后运行结果main thread startsnew thread staredThe factorial of 10 is 3628800new thread endsmain thread endsl运行结果说明运行结果说明新线程结束后main线程才结束8.1.2 Thread类类(续续)例例8_1修改后运行结果修改后运行结果多线程编程基础108.1.2 Thread类类(续续)常用常用API函数函数名称说明
5、public Thread()构造一个新的线程对象,默认名为Thread-n,n是从0开始递增的整数public Thread(Runnable target)构造一个新的线程对象,以一个实现Runnable接口的类的对象为参数。默认名为Thread-n,n是从0开始递增的整数public Thread(String name)构造一个新的线程对象,并同时指定线程名public static Thread currentThread()返回当前正在运行的线程对象public static void yield()使当前线程对象暂停,允许别的线程开始运行public static void sleep(long millis)使当前线程暂停运行指定毫秒数,但此线程并不失去已获得的锁旗标。多线程编程基础11public void start()启动线程,JVM将调用此线程的run方法,结果是将同时运行两个线程,当前线程和执行run方法的线程public void run()Thread的子类应该重写此方法,内容应为该线程应执行的任务。public final void stop()停止线程
《Java语言程序设计:第8章 线程》由会员经***分享,可在线阅读,更多相关《Java语言程序设计:第8章 线程》请在金锄头文库上搜索。
通过数据分析提升商超营销效果
体育场馆销售力量的培训课程
商超营销中的市场竞争和竞争优势
如何有效监控和评估旅行社营销效果
目标市场分析及策略制定
旅行社与旅游相关行业的合作与营销
开展市场调研与反馈机制
体育场馆营销策划与执行的关键要素
提升商超员工服务意识的培训
提高商超店面管理与运营效率的培训
商超与供应商的合作模式与利益共享
如何争取更多的商超合作伙伴
旅行社与在线旅游平台的合作与竞争
旅行社线上预订系统及用户体验优化
旅行社的员工培训与发展计划
客户关系管理在旅行社营销中的应用
旅行社营销中的危机公关管理
通过数据洞察驱动营销决策
提升赛事体验的体育场馆营销方法
提高旅行社员工的销售技巧和服务意识
2022-06-20 60页
2022-05-20 171页
2022-05-20 125页
2022-05-20 119页
2022-05-20 108页
2022-05-20 138页
2022-05-20 92页
2022-05-20 104页
2022-05-20 93页
2022-05-20 84页