《Thread多线程》java多线程参考源码

Thread 多线程
LOGO Thread 多线程

前言 本章内容是 Core Java的一个难点,如何设计一个 安全、并发的多线程程序,对于一个程序员来说是 一个比较有挑战性的任务,因为你要站在机器的角 度去考虑问题。 到目前为止,大家写的Application都是单线程程序, 也就是启动的java程序在“同一时间”内只会做一 件事。有时需要程序“同时”可以做很多事,即所 谓多线程( Multi-thread-)程序。在以后的 jsp/servlet学习中,了解多线程也是很重要的。 例: SingleThread.java www.themegallery. com Company Logo
Company Logo www.themegallery.com 前言 本章内容是Core Java的一个难点,如何设计一个 安全、并发的多线程程序,对于一个程序员来说是 一个比较有挑战性的任务,因为你要站在机器的角 度去考虑问题。 到目前为止,大家写的Application都是单线程程序, 也就是启动的java程序在“同一时间”内只会做一 件事。有时需要程序“同时”可以做很多事,即所 谓多线程(Multi-thread)程序。在以后的 jsp/servlet学习中,了解多线程也是很重要的。 例:SingleThread.java

线程基本概念 进程:应用程序,一个可执行的程序统称 线程:一个轻量级的进程。一个进程可以有多个线程 如何理解呢? 进程的公共部分(如成员变量) 进程中独立运行的线程 www.themegallery.com Company Logo
Company Logo www.themegallery.com 线程基本概念 进程:应用程序,一个可执行的程序统称 线程:一个轻量级的进程。一个进程可以有多个线程 如何理解呢? 进程的公共部分(如成员变量) 进程中独立运行的线程

Data 对什么做操作 线程三要素 CPU Code 做什么 何时做 Java设计多线程程序的四种模式 E 1、不共享代码,也不共享数据 2、共享代码,不共享数据 内存缓冲区 3、不共享代码,共享数据 4、既共穿代码,也共享数据—迅雷下载资源 www.themegallery.com Company Logo
Company Logo www.themegallery.com CPU 何时做 Code 做什么 Data 对什么做操作 线程三要素 Java设计多线程程序的四种模式: 1、不共享代码,也不共享数据 2、共享代码, 不共享数据 3、不共享代码,共享数据 4、既共享代码,也共享数据 IE 内存缓冲区 迅雷下载资源

多线程的实现方式: 、继承 kjava. lang. Thread类,并覆盖run() class A extends Thread public void run ()( new AO.start 2、实现 java lang Runnable接口 class B im plements Runnable public void run(t) new Thread (new BO).start www.themegallery.com Company Logo
Company Logo www.themegallery.com 多线程的实现方式: 1、继承java.lang.Thread类,并覆盖run() class A extends Thread{ public void run(){ } } new A().start(); 2、实现java.lang.Runnable接口 class B implements Runnable{ public void run(){ } } new Thread(new B() ).start();

线程控制的基本方法 boo| ean isAlive()判断线程是否还“活”着,即线程是否还未终止 nt getPriority()获得线程的优先级数值 void setPriority()设置线程的优先级数值 static void sleep( long millis)将当前线程睡眠指定毫秒数 void join()调用某线程的该方法,将当前线程与该线程“合并”,即 待该线程结束,在恢复当前线程的运行 static void yield()主动让出cpu,当前线程进入就绪队列等待调度 void wait()当前线程进入对象的 wait pool void notify()/ notify()唤醒对象的 wait pool中的一个/所有等待线程 static Thread current tread0返回当前正在执行线程的引用 void setName()给线程一个名字 String getName()得到线程的名字 long gtld()OS分配的一个标识 www.themegallery.com Company Logo
Company Logo www.themegallery.com 线程控制的基本方法 boolean isAlive() 判断线程是否还“活”着,即线程是否还未终止 Int getPriority()获得线程的优先级数值 void setPriority()设置线程的优先级数值 static void sleep(long millis)将当前线程睡眠指定毫秒数 void join() 调用某线程的该方法,将当前线程与该线程“合并”,即 等 待该线 程结束,在恢复当前线程的运行 static void yield()主动让出cpu,当前线程进入就绪队列等待调度 void wait() 当前线程进入对象的wait pool void notify()/notifyAll( ) 唤醒对象的wait pool中的一个/所有等待线程 static Thread currentTread() 返回当前正在执行线程的引用 void setName()给线程一个名字 String getName()得到线程的名字 long getId()OS分配的一个标识

线程的生命周期 start Runable new notify () 时间到 yield ( OS Running Sleep Block poo wait () 运行结束 wait pool Dead www.themegallery.com Company Logo
Company Logo www.themegallery.com 线程的生命周期 new Running Runable Block pool Dead start() OS sleep() wait() notify() yield() 时间到 运行结束 wait pool

Java设计多线程程序的四种模式 1、不共享代码,也不共享数据 两个概念: 当前线程对象:ths 当前正在执行的线程对象 Thread, currentThread( 例: ThreadTesta 2、不共享代码,共享数据 例: ThreadTestB www.themegallery.com Company Logo
Company Logo www.themegallery.com 1、不共享代码,也不共享数据 两个概念: 当前线程对象:this 当前正在执行的线程对象 Thread.currentThread() 例:ThreadTestA 2、不共享代码,共享数据 例:ThreadTestB Java设计多线程程序的四种模式

Java设计多线程程序的四种模式 3、共享代码,也共享数据-使用 I synchronized同步 多线程并发访问数据的安全性问题:加锁的机制 关键字: Synchronized射象实例) 府象的锁标记 例: Threadtestc 网上银行转账 (A>10000){ 线程转换了!后果? A=A-10000, B=B+10000, www.themegallery.com Company Logo
Company Logo www.themegallery.com Java设计多线程程序的四种模式 3、共享代码,也共享数据--使用synchronized同步 多线程并发访问数据的安全性问题:加锁的机制 关键字:Synchronized( 对象实例 ) 对象的锁标记 例:ThreadTestC 网上银行转账: If(A>10000){ A=A-10000; B=B+10000; } 线程转换了!后果?

不共享代码,共享数据 最经典的多线程例子:生产者一消费者 生产者 消费者 仓库 例: Thread TestD. java 注:在JAVA语言中,程序运行完成的条件:所有 线程都运行结東,不一定是主线程运行结束 例:建国六十周年倒计时牌: TimeFrame java www.themegallery.com Company Logo
Company Logo www.themegallery.com 4、不共享代码,共享数据 最经典的多线程例子:生产者—消费者 仓库 生产者 消费者 例:ThreadTestD.java 注:在JAVA语言中,程序运行完成的条件:所有 线程都运行结束,不一定是主线程运行结束 例:建国六十周年倒计时牌:TimeFrame.java
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 邯郸学院计算机系:Java GUI编程(张延军).ppt
- 《AUTOCAD计算机辅助设计》第四章 CAD计算机辅助设计.ppt
- 《AUTOCAD计算机辅助设计》第十章_天正建筑.ppt
- 《AUTOCAD计算机辅助设计》第十二章 建筑剖面图绘制.ppt
- 《AUTOCAD计算机辅助设计》第六章_图块.ppt
- 《AUTOCAD计算机辅助设计》第八章_建筑平面图绘制.ppt
- 《AUTOCAD计算机辅助设计》第五章_编辑类命令.ppt
- 《AUTOCAD计算机辅助设计》第二章_显示控制命令.ppt
- 《AUTOCAD计算机辅助设计》第三章 绘图前的准备.ppt
- 《AUTOCAD计算机辅助设计》第七章 高级编辑技巧.ppt
- 《AUTOCAD计算机辅助设计》第一章_建筑CAD概述.ppt
- 安阳方远学术部:《静态和动态网页教程》教学大纲.doc
- 《2009年二级C语言资料》全国二级公共基础.doc
- 《2009年二级C语言资料》4填空题和改错题答案.doc
- 《2009年二级C语言资料》3二级编程题题目.doc
- 《2009年二级C语言资料》2二级C改错题题目.doc
- 《2009年二级C语言资料》1二级C填空题题目.doc
- 《2009年二级C语言资料》全国c模拟试卷(6套含上机).doc
- 徐州工程学院:《C程序设计》实验教学任务书.doc
- 《2009年二级C语言资料》VC6.0 环境下上机考试系统的使用.doc
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)封面及目录(编著:余锡存、曹国华).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第10章 具有51内核的8位单片机简介(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第1章 微型计算机基础(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第2章 单片机的硬件结构和原理(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第3章 MCS-51单片机指令系统(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第4章 汇编语言程序设计简介(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第5章 MCS - 51单片机的中断系统(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第6章 MCS - 51单片机内部定时器(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第7章 单片机系统扩展与接口技术(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第8章 单片机应用系统的设计与开发(王品).ppt
- 西安电子科技大学出版社:《单片机原理及接口技术》课程教学资源(PPT课件讲稿)第9章 单片机系统的抗干扰技术(王品).ppt
- 《嵌入式系统讲义》第4章 S3C2410X系统结构(周国运).ppt
- 电子工业出版社:《电子商务物流》讲义(PPT课件)(周云霞).ppt
- 《vb源代码》第3章 课前体验.doc
- excel2007表格制作培训教程案例_借阅登记表.xlsx
- excel2007表格制作培训教程案例_存货管理表.xlsx
- excel2007表格制作培训教程案例_空调销售量(保护).xlsx
- excel2007表格制作培训教程案例_空调销售量(共享).xlsx
- excel2007表格制作培训教程案例_艺术小组学生成绩表.xlsx
- excel2007表格制作培训教程案例_财务预算表.xlsx