当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 学习Java私塾中级课程视频的感受分享 - 第5篇
帖子发表于 : 2010-01-12 13:56 

注册: 2009-11-24 17:04
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
本章概述和学习心得:

本章介绍了Java程序中一个很重要的概念——多线程。线程可以看成一个有自己的程序代码和操作数据组成的虚拟机器(封装体)。一般而言,有两种写线程的方法,即:继承Thread类和实现Runnable接口。一个线程开始后,具有可运行、运行中、等待锁、阻塞、结束这几个不同的状态,程序员可以通过sleep、wait、notify、join和interrupt等方法来控制线程。另外,由于多个线程可以共享相同的数据(临界资源),这会导致数据的不一致性而发生不可预期的错误,Java引入了线程同步的机制。这样,就能使用synchronized来解决临界资源的问题。本章最后,老师演示了一段经典的生产者和消费者的代码,使我们对线程同步有了更进一步的直观理解。

内容提要:

【1】线程的基本概念:
1. 封装体 :虚拟的处理机 + CPU执行的代码 + 代码操作的数据
2. 进程和线程的区别:进程是独立的,而线程是共享的;线程可以看成轻量级的进程
3. 线程的两种写法

【2】线程的状态:
1. Runnable
2. Running
3. Blocke
4. Blocked in wait ( ) pool
5. Blocked in object's lock pool
6. Dead

【3】线程的调度和控制
1. 抢占式调度(不可控):优先级
2. Thread.sleep ( ) : 给优先级较低的线程一个运行的机会
3. yield ( ) : 给相同优先级的线程一个运行的机会
4. isAlive ( )
5. wait ( ) : 当前线程进入监察器对象的wait pool
6. notify( ) / notifyAll( ):唤醒对象的wait pool 中的一个 / 所有等待的线程
7. join ( ) :暂停当前线程,“合并”调用某线程
8. interrupt( ): 发送一个例外,强制唤醒暂停线程
9. 守护线程的概念

【4】线程同步
1. 临界资源(共享资源):多个线程间共享的数据
2. 临界资源问题:线程并发,数据不一致性
3. 解决的办法:从对象中获得互斥锁 (synchronized)
4. 死锁
5. 同步运用的准则:精简、不要阻塞、持有锁的时候不调用其他对象的方法

【5】代码演示:经典的生产者和消费者


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 学习Java私塾中级课程视频的感受分享 - 第5篇
帖子发表于 : 2010-01-18 15:28 

注册: 2010-01-18 15:25
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
继续学习 :em05


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译