您的位置:首页 > 编程语言 > Java开发

7. java基础学习总结2

2014-09-25 01:05 274 查看
接昨天继续总结:

 

9. 实现Runnable接口的类对象只是指出了线程需要完成的任务,其本身并不是线程对象,该对象可以被同时传递给多个线程对象,然后利用start启动线程。线程在其生命周期中只能被启动一次。

 

10. 线程让步:使当前线程让出CPU,使其他线程得以执行。线程让步有两种方式:1)只是让出当前的CPU资源,具体将CPU让给谁不确定,利用的方法是yield方法,yield方法使当前运行的线程让出CPU,回到准备状态,但是该操作没有保障,线程回到准备状态立刻被调度进入运行状态;2)线程将给指定的线程让步,指定的线程没完,其绝不恢复执行,利用的方法是join方法,其结果是调用此方法的线程一直等到此方法所在的线程执行完毕才恢复执行(谁调用谁执行)。

 

11. 同步方法是指用synchronized关键字修饰的方法,其与普通方法的不同是进入同步方法执行的线程将获得同步方法所属对象的锁,一旦对象被锁,其他线程就不能执行被锁对象的任何同步方法。synchronized只能用来标识方法,不能标识成员变量。若一个对象有多个同步方法,当某个线程在访问其中之一时,其他线程不能访问该对象中的任何同步方法,但可以访问非同步方法。

 

12. 在同步方法中可以使用特定的方法对线程进行调度。wait方法将使得某一线程进入该资源(同步方法所在对象)的等待池,使其进入等待状态,直至别的线程调用该资源的notify或者notifyAll方法将其唤醒为止。notify方法将唤醒该资源等待池中的某一个线程,具体哪个没有保障。只有wait方法释放锁,notifyAll不释放锁,只是起到通知作用。

13. 虽然StringBuffer类也有equals方法,但是其功能相当于将两个引用进行“==”比较,并没有String类equals方法比较内容是否相同。若需要比较两个StringBuffer对象内容是否相同,要首先调用toString方法,再进行比较。StringBuffer类支持同步,所以效率会比StringBuilder稍差。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: