锁定老帖子 主题:java线程安全总结
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-10
jameswxx 写道 不明白为什么那么多人投“隐藏贴”,估计都很牛比吧,就算这个帖子不好,也不至于投隐藏贴吧?如果这个帖子被投隐藏贴,我以后再也不发帖了,只写自己的博客算了。javaeye的风气现在越来越浮躁了,动辄就是新手,隐藏。花精力花时间写帖子,图个什么呀?受这个鸟气。
为楼主喊冤。 很欣赏楼主对过程的分析。 循循善诱。 希望楼主继续后面的文章 |
|
返回顶楼 | |
发表时间:2010-11-10
写的不错,通俗易懂,希望LZ继续努力,坚持写下去,我也写过文章,深知要写好文章不是那么容易的。 LZ 也可以看看我的博客文章,地址: http://blog.csdn.net/FcBayernMunchen/archive/2010/08/15/5813667.aspx
|
|
返回顶楼 | |
发表时间:2010-11-10
那么对于public synchronized void add(int num)这种情况,意味着什么呢?其实这种情况,锁就是这个方法所在的对象。同理,如果方法是public static synchronized void add(int num),那么锁就是这个方法所在的class。
所以简单来说,volatile适合这种场景:一个变量被多个线程共享,线程直接给这个变量赋值。这是一种很简单的同步场景,这时候使用volatile的开销将会非常小。 这两段话最经典了。 楼主是否可以请教下sleep()与多线程的关系?sleep()是不是只是放弃当前cpu?与多线程并没有关系啊? |
|
返回顶楼 | |
发表时间:2010-11-10
貌似简单了一点,不过我学到了很多,如果在深入一点那就更完美了
|
|
返回顶楼 | |
发表时间:2010-11-10
看得出楼主是认真写了的,不管深不深入,首先态度就值得赞一个,投精了。
|
|
返回顶楼 | |
发表时间:2010-11-10
非常想投精华可惜积分不够不能投,很是抱歉!
|
|
返回顶楼 | |
发表时间:2010-11-10
jameswxx 写道 不明白为什么那么多人投“隐藏贴”,估计都很牛比吧,这个帖子不是非常好,但也不至于投隐藏贴吧?如果这个帖子被投隐藏贴,我以后再也不发帖了,只写自己的博客算了。javaeye的风气现在越来越浮躁了,动辄就是新手,隐藏。花精力花时间写帖子,图个什么呀?受这个鸟气。
零分党都没有选择权利了 。 估计都是高手。 |
|
返回顶楼 | |
发表时间:2010-11-10
最后修改:2010-11-10
因为java所以java 写道 那么对于public synchronized void add(int num)这种情况,意味着什么呢?其实这种情况,锁就是这个方法所在的对象。同理,如果方法是public static synchronized void add(int num),那么锁就是这个方法所在的class。
所以简单来说,volatile适合这种场景:一个变量被多个线程共享,线程直接给这个变量赋值。这是一种很简单的同步场景,这时候使用volatile的开销将会非常小。 这两段话最经典了。 楼主是否可以请教下sleep()与多线程的关系?sleep()是不是只是放弃当前cpu?与多线程并没有关系啊? sleep只是让当前线程暂停了一会儿,并没有放弃锁。如果在同步块中sleep,即使当前线程暂停了,别的线程也不能进入同步块中执行。 wait是让当前线程放弃锁,进入阻塞队列,等被nofity后,才能进入就绪队列。 |
|
返回顶楼 | |
发表时间:2010-11-10
看后很有收获。
|
|
返回顶楼 | |
发表时间:2010-11-10
不错,虽然看得比较吃力,这个贴投隐藏、新手,那个set/get垃圾帖投精华,
我想说,版主在干啥?!!! 作为JE的用户,我有点不爽咯~~~~ 顶楼主先 |
|
返回顶楼 | |