新足迹

 找回密码
 注册

精华好帖回顾

· wcx0314免费片片加5年心情感悟3页已填坑 (2010-7-15) wcx0314 · 宿记:三井京都酒店 (Hotel the Mitsui Kyoto) (2022-12-30) violinlearner
· 烟囱戚风模VS普通圆模 - 咖啡戚风蛋糕X2 全程直播 (2011-6-2) 莎莎 · 新足迹厨艺大展示 12月下:主料鸡块 - 上海白斩鸡 (2008-12-20) patrickzhu
Advertisement
Advertisement
楼主:zn7726

我一定是渣, 虚心向程序员帝们请教, 开发中如果避免使用debugger -- 请KA娃和yuba务必发言 [复制链接]

发表于 2010-10-20 11:09 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
关于race condition的书很多,不过wiki这个介绍虽然讲得简单,还是值得看看的

http://en.wikipedia.org/wiki/Race_condition

评分

参与人数 1积分 +1 收起 理由
kawara + 1 race condition和live lock不是一回事 ...

查看全部评分

Advertisement
Advertisement

发表于 2010-10-20 11:13 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 小马识途 于 2010-10-20 10:59 发表
livelock 不就属于concurrency问题吗?


我不是那意思, 我是看大家都在谈多线程, 并行处理, 如何从底层来操作和分配cpu和内存, 人家的意思是底层编码直接使用和分配os的资源, 怕楼歪了.

2010年度奖章获得者

发表于 2010-10-20 11:19 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
這個樓早就歪的不成樣子了 :)
头像被屏蔽

禁止发言

发表于 2010-10-20 11:25 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-10-20 11:19 发表
這個樓早就歪的不成樣子了 :)


不是歪,是依山而建
签名被屏蔽

发表于 2010-10-20 11:49 |显示全部楼层
此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Dan.and.Andy 于 2010-10-20 11:13 发表


我不是那意思, 我是看大家都在谈多线程, 并行处理, 如何从底层来操作和分配cpu和内存, 人家的意思是底层编码直接使用和分配os的资源, 怕楼歪了.

呵呵,不好意思,俺也是顺势就继续歪楼了。

刚刚又想到一个livelock的例子,厕所门口,一人要出,一人要进,先互相让,然后互相抢,一直循环,这个俺是有亲身经历的

评分

参与人数 1积分 +2 收起 理由
y12345678 + 2 最后呢?

查看全部评分

发表于 2010-10-20 11:50 |显示全部楼层
此文章由 老蒋 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 老蒋 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Livelock sample code in Java :

public class Beauty {

        private Geek boyfriend;
        private final Lock lock = new ReentrantLock();

        boolean swapBF(Beauty other) {
                if (this == other) return true;
                while (true) {
                        try {
                                lock.lockInterruptibly();
                                try {
                                        if (other.lock.tryLock()) {
                                                try {
                                                        Geek tmp = boyfriend;
                                                        boyfriend = other.boyfriend;
                                                        other.boyfriend = tmp;
                                                        return true;
                                                } finally {
                                                        other.lock.unlock();
                                                }
                                        }
                                } finally {
                                        lock.unlock();
                                }
                                Thread.sleep(100);
                        } catch (InterruptedException e) {
                                Thread.currentThread().interrupt();
                                return false;
                        }
                }
        }
}

The solution is to introduce randomness into the retry mechanism.

评分

参与人数 1积分 +5 收起 理由
kawara + 5 我很赞同

查看全部评分

Advertisement
Advertisement

发表于 2010-10-20 12:00 |显示全部楼层

回复 126# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这行lock.lockInterruptibly();
是不是应该放进第二层的try block?

用swapBF做method名字是不是太邪恶了

发表于 2010-10-20 12:50 |显示全部楼层

回复 127# 的帖子

此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得这样挺好的,如果只用一套try,代码会messy,尤其是那个finally block

发表于 2010-10-20 12:53 |显示全部楼层

回复 128# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这样第一个lock在运行一次后没有释放,不是变成dead lock了吗?

发表于 2010-10-20 13:13 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
這個樓早就歪的不成樣子了

已经成比武大会了. 我早就插不上嘴了

发表于 2010-10-20 13:15 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 小马识途 于 2010-10-20 12:53 发表
这样第一个lock在运行一次后没有释放,不是变成dead lock了吗?

不会不释放的,或者走finally,或者被interupt自然释放。
Advertisement
Advertisement

发表于 2010-10-20 13:22 |显示全部楼层

回复 131# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
更正一下, 是俺搞错了

[ 本帖最后由 小马识途 于 2010-10-20 13:24 编辑 ]

发表于 2010-10-20 19:08 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-10-20 10:21 发表
这帖技术含量好高

呵呵,他们给了你10000分?

发表于 2010-10-20 20:27 |显示全部楼层
此文章由 iceman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iceman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 PotatoChips 于 2010-10-19 15:22 发表
实际上如果对开发的系统很熟,大部分代码都会是copy&paste的,这样会减少bug,但谁要是自己用手来敲代码,还不用debugger,我只能说他是非人类了

我的头经常告诫我,copy&paste does not make any value!
  Future belongs to those who believe in the beauty of their Dreams.

发表于 2010-10-20 20:33 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bulaohu 于 2010-10-20 11:09 发表 [url=http://www.oursteps.com.au/bbs/redirect.php?goto=findpost&pid=4744403&ptid=278073]

kawara 积分 +1 race condition和live lock不是一回事 ... 2010-10-20 11:56



I was responding to post #118.

评分

参与人数 1积分 +2 收起 理由
kawara + 2 哦,他那个使race condition

查看全部评分

发表于 2010-10-20 21:31 |显示全部楼层
此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bulaohu 于 2010-10-20 20:33 发表



I was responding to post #118.

kawara 积分 +2  哦,他那个使race condition 2010-10-20 20:34


嘿嘿,K哥还真能侃
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部