paulwong

多线程笔记

1、同步
线程初始化时,可以向线程传入对象,就存在多条同类型的线程存取同一对象,带来对象的值不同步的问题。
JVM方案,采用锁机制,线程的run代码里,使用同步关键字,同步该对象,由于一个对象只有一个锁,没取得锁的线程,就只能处于等待的状态了,run方法执行完,则锁就被释放了,下一个线程是哪个,不确定,由他们进行竞争锁,谁取得,谁就可以先上。

2、wait()
这是Object的方法,执行这个对象的wait()方法并不是去执行该对象里面的wait方法,而是通知JVM暂停锁定了该对象的线程的run方法,进入等待状态,同时也释放该锁,使得另外的同类线程有机会执行

3、synchronized
在方法前加synchronized,相当于线程的run方法中先同步资源对象,再且仅执行一个该方法。

4、start()
调用线程的start方法,并不会立即执行run方法,而是由JVM决定JVM里那一堆线程,哪个先执行,再执行run方法

posted on 2011-12-29 01:26 paulwong 阅读(214) 评论(0)  编辑  收藏 所属分类: 性能优化


只有注册用户登录后才能发表评论。


网站导航: