《head first java 》读书笔记(三)
2014-04-03 17:44
375 查看
[b]Updated 2014/04/03 --P518[/b]
Thread需要任务,任务是实现过Runnable的实例。Runnalbe这个接口只有一个方法。run()会是新线程所执行的第一项方法。要把Runnable传给Thread的构造函数才能启动新的线程。线程在初始化以后start()以前处于新建立的状态。调用Thread对象的start()之后,会建立出新的执行空间,它处于可执行状态等待被挑出来执行。当Java虚拟机的调度器选择某个线程之后它就处于执行中的状态,单处理器的机器智能有一个执行中的线程。有时线程会因为某些原因而被堵塞。调度不能保证任何的执行时间和顺序,所以你不能期待它会完全地平均分配执行,你最多也只能影响sleep的最小保证时间。
synchronized关键词代表线程需要一把钥匙来存取被同步化过的线程。
要保护数据,就把作用在数据上的方法给同步化。
Thread.sleep()这个静态方法可以强制线程进入等待状态到过了设定时间为止。sleep()方法可能会抛出InterruptedException异常,所以要包在try/catch块,或者把它声明出来。可以用setName()方法来帮线程命名,通常用来除错。两个或两个以上的线程存取相同的对象可能会引发数据的损毁。要让对象在线程上有足够的安全性,就要判断出哪些指令不能被分割执行。使用synchronized这个关键词修饰符可以防止两个线程同时进入同一对象的统一方法。每个对象都有单一的锁,单一的钥匙,这只会在对象带有同步化方法时才有实际的用途。线程尝试要进入同步化过的方法时必须要取得对象的钥匙,如果因为已经被别的线程拿走了,就得等。对象就算是有多个同步化过的方法,也还是只有一个锁。一旦某个线程进入该对象的同步化方法,其他线程就无法进入该对象上的任何同步化线程。
Thread需要任务,任务是实现过Runnable的实例。Runnalbe这个接口只有一个方法。run()会是新线程所执行的第一项方法。要把Runnable传给Thread的构造函数才能启动新的线程。线程在初始化以后start()以前处于新建立的状态。调用Thread对象的start()之后,会建立出新的执行空间,它处于可执行状态等待被挑出来执行。当Java虚拟机的调度器选择某个线程之后它就处于执行中的状态,单处理器的机器智能有一个执行中的线程。有时线程会因为某些原因而被堵塞。调度不能保证任何的执行时间和顺序,所以你不能期待它会完全地平均分配执行,你最多也只能影响sleep的最小保证时间。
synchronized关键词代表线程需要一把钥匙来存取被同步化过的线程。
要保护数据,就把作用在数据上的方法给同步化。
Thread.sleep()这个静态方法可以强制线程进入等待状态到过了设定时间为止。sleep()方法可能会抛出InterruptedException异常,所以要包在try/catch块,或者把它声明出来。可以用setName()方法来帮线程命名,通常用来除错。两个或两个以上的线程存取相同的对象可能会引发数据的损毁。要让对象在线程上有足够的安全性,就要判断出哪些指令不能被分割执行。使用synchronized这个关键词修饰符可以防止两个线程同时进入同一对象的统一方法。每个对象都有单一的锁,单一的钥匙,这只会在对象带有同步化方法时才有实际的用途。线程尝试要进入同步化过的方法时必须要取得对象的钥匙,如果因为已经被别的线程拿走了,就得等。对象就算是有多个同步化过的方法,也还是只有一个锁。一旦某个线程进入该对象的同步化方法,其他线程就无法进入该对象上的任何同步化线程。
相关文章推荐
- 【Head First Java 读书笔记】(六)认识Java API
- 《head first java 》读书笔记(四)
- 《head first java 》读书笔记(五)
- 《head first java 》读书笔记(二)
- 《Head First Java》读书笔记——认识Java的API
- 《Head First Java》读书笔记(1)
- 读书笔记——《Head First Java》MIDI音乐播放器实例
- 读书笔记——《Head First Java》简单的聊天程序实例
- 《head first java 》读书笔记
- head first java 读书笔记
- [Head First Java]-读书笔记
- 【Head First Java 读书笔记】(二)类与对象
- 《Head First Java》读书笔记——超强力方法
- 【Head First Java 读书笔记】(三)primitive主数据类型和引用
- 【Head First Java 读书笔记】(八)接口与抽象类
- 《Head First Java》读书笔记(1) - Java语言基础
- 【Head First Java 读书笔记】(五)编写程序
- 读书笔记——《Head First Java》战舰小游戏实例
- 《Head First Java》读书笔记(3) - 异常和IO
- 《Head First Java》读书笔记(2) - Java面向对象思想