two functons and two threads# JobHunting - 待字闺中w*82013-01-12 08:011 楼卖一个700多的电脑,ebay+paypal fee就50刀了,比俺的利润都高.NND,钱都让it们搞去了。。。大家都是怎么搞的啊?
P*b2013-01-12 08:014 楼用semaphore应该可以啊【在 j*****y 的大作中提到】: function A(), B(): Thread #1, #2: #1 call A(): #2 call B(): 如何保证 A() 在 B() 前面被 call 阿?
P*b2013-01-12 08:018 楼能啊,你在funcB里面wait sem1,然后在funA里面release sem1.就应该可以了吧。【在 j*****y 的大作中提到】: seamphore 能保证顺序吗?
j*y2013-01-12 08:0110 楼给个 code 吧, 我学习一下, 多谢 :)【在 P*******b 的大作中提到】: 能啊,你在funcB里面wait sem1,然后在funA里面release sem1.就应该可以了吧。
h*02013-01-12 08:0112 楼是不是应该用monitor?把B()放到一个class里面, class的构造函数必须要A()的signal。 这样只有A()被call了,这个class才能被创建。 然后才能用class中的B()?
h*02013-01-12 08:0113 楼这样不行吧。。 B仍然可以先被call, 只不过被call后又退出了而已。。【在 P*******b 的大作中提到】: 能啊,你在funcB里面wait sem1,然后在funA里面release sem1.就应该可以了吧。
P*b2013-01-12 08:0116 楼不加锁比较危险吧。【在 f*******t 的大作中提到】: int i = 0;: Thread 1:: A();: i++;: Thread 2:: while(i != 1): sleep(100);: B();
j*y2013-01-12 08:0117 楼smart idea :)不过还是想能不能用lock 的机制【在 f*******t 的大作中提到】: int i = 0;: Thread 1:: A();: i++;: Thread 2:: while(i != 1): sleep(100);: B();
P*b2013-01-12 08:0119 楼我觉得问题的关键不在于控制是否call进去了吧。call进去马上block跟没有call区别很大吗?如果真这样,大不了再写个wrapper的函数把信号量房外面也行吧。【在 h*******0 的大作中提到】: 用什么词有区别吗? 但是你的B仍然是先被call了。。
h*02013-01-12 08:0120 楼如果楼主真是这意思,那你写得也对。。 不过按字面意思,感觉用个wrapper比较好别很【在 P*******b 的大作中提到】: 我觉得问题的关键不在于控制是否call进去了吧。call进去马上block跟没有call区别很: 大吗?如果真这样,大不了再写个wrapper的函数把信号量房外面也行吧。
c*a2013-01-12 08:0121 楼这样对不对啊Semaphore A;Semaphore B;init(){A = new Semaphore(){...};B = new Semaphore(){...};A.acquire();B.acquire();}gofirst(){A.release()}gosecond(){A.acquire();A.release();...B.release();}cc150有这题
l*u2013-01-12 08:0122 楼用semaphore哪位给说说,俺thread用的不多,理解的对不对:semaphore像个on/off flag,mutex lock/unlock是锁门/开门。【在 j*****y 的大作中提到】: function A(), B(): Thread #1, #2: #1 call A(): #2 call B(): 如何保证 A() 在 B() 前面被 call 阿?