2011-09-06
2011-09-07 19:32
225 查看
线程的生命周期:
线程优先级
1、 把线程从就绪状态进入运行状态的过程叫做线程调度。负责调度工作的机构叫做调度管理器。
2、 线程的优先级别1~10
3、 常用方法:
Void run()//创建该类的子类时必须实现的方法
Void start()//开启线程的方法
Static void sleep(毫秒)//释放cpu的执行权,不释放锁
Static void sleep(毫秒,纳秒)//
Static void yield()//可以对当前线程进行临时暂停(让线程将资源释放出来)
Final void wait()//释放cpu的执行权,释放锁
Final void notify()
Void join()//可以让当前线程进行临时暂停(让线程将资源释放出来)
线程同步:
临界资源
多个线程间共享的数据称为临界资源(Critical Resource),由于是线程调度器负责线程的调度,程序员无法精确控制多线程的交替顺序。因此,多线程对临界资源的访问有时会导致数据的不一致行。
互斥锁
每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
Java对象默认是可以被多个线程共用的,只是在需要时才启动“互斥锁”机制,成为专用对象。
关键字synchronized用来与对象的互斥锁联系
当某个对象用synchronized修饰时,表明该对象已启动“互斥锁”机制,在任一时刻只能由一个线程访问,即使该线程出现堵塞,该对象的被锁定状态也不会解除,其他线程任不能访问该对象。
新建 |
就绪 |
运行 |
死亡 |
堵塞 |
start() |
CPU可用 |
任务完成 |
1、 把线程从就绪状态进入运行状态的过程叫做线程调度。负责调度工作的机构叫做调度管理器。
2、 线程的优先级别1~10
3、 常用方法:
Void run()//创建该类的子类时必须实现的方法
Void start()//开启线程的方法
Static void sleep(毫秒)//释放cpu的执行权,不释放锁
Static void sleep(毫秒,纳秒)//
Static void yield()//可以对当前线程进行临时暂停(让线程将资源释放出来)
Final void wait()//释放cpu的执行权,释放锁
Final void notify()
Void join()//可以让当前线程进行临时暂停(让线程将资源释放出来)
线程同步:
临界资源
多个线程间共享的数据称为临界资源(Critical Resource),由于是线程调度器负责线程的调度,程序员无法精确控制多线程的交替顺序。因此,多线程对临界资源的访问有时会导致数据的不一致行。
互斥锁
每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
Java对象默认是可以被多个线程共用的,只是在需要时才启动“互斥锁”机制,成为专用对象。
关键字synchronized用来与对象的互斥锁联系
当某个对象用synchronized修饰时,表明该对象已启动“互斥锁”机制,在任一时刻只能由一个线程访问,即使该线程出现堵塞,该对象的被锁定状态也不会解除,其他线程任不能访问该对象。
相关文章推荐
- 2011 09 06 学习总结
- 本周ASP.NET英文技术文章推荐[06/03 - 06/09]
- 11-06-09
- 水晶报表问题交流与答疑帖-2011/04-05-06
- 【2011-06】第一次工作面试经历
- 2011 09 01 --递归删除目录中的文件以及当前目录
- 记第一次topcoderSRM赛(2011,09,10)&&Jie.Qin'birthday
- A trip through the Graphics Pipeline 2011_09_Pixel processing – “join phase”
- DevArt UniDAC v.2.0.0.3 (06-Jan-09)
- Extract GlobalEnglish_09/06/2010
- TripAdvisor architecture 2011/06
- Java基础4_2(2011 06 13)
- 程序人生系列之新闻发布系统 06-09
- 2011 09 04 第一周 周总结
- UC故事 2011/10/09
- 2011_11_06程序员的修炼之道:从小工到专家
- ubuntu下的网速限制软件wondershaper (2011-09-18 00:00:00)转载▼
- 06/15/09
- uboot 2011-06 之makefile 分析(二)
- 毕业,从Feb 09, 2011, 开始,17