avatar
two functons and two threads# JobHunting - 待字闺中
w*8
1
卖一个700多的电脑,ebay+paypal fee就50刀了,比俺的利润都高.NND,钱都让it们搞
去了。。。
大家都是怎么搞的啊?
avatar
j*y
2
function A(), B()
Thread #1, #2
#1 call A()
#2 call B()
如何保证 A() 在 B() 前面被 call 阿?
avatar
c*r
3
不错了,我买台电脑,抛掉油钱,本钱,就2顿巴非
avatar
P*b
4
用semaphore应该可以啊

【在 j*****y 的大作中提到】
: function A(), B()
: Thread #1, #2
: #1 call A()
: #2 call B()
: 如何保证 A() 在 B() 前面被 call 阿?

avatar
c*k
5
包子

【在 c*********r 的大作中提到】
: 不错了,我买台电脑,抛掉油钱,本钱,就2顿巴非
avatar
j*y
6
seamphore 能保证顺序吗?

【在 P*******b 的大作中提到】
: 用semaphore应该可以啊
avatar
c*y
7
你们两个id怎么看着这么像。。

【在 c*********k 的大作中提到】
: 包子
avatar
P*b
8
能啊,你在funcB里面wait sem1,然后在funA里面release sem1.就应该可以了吧。

【在 j*****y 的大作中提到】
: seamphore 能保证顺序吗?
avatar
C*g
9
een

你们两个id怎么看着这么像。。

【在 c******y 的大作中提到】
: 你们两个id怎么看着这么像。。
avatar
j*y
10
给个 code 吧, 我学习一下, 多谢 :)

【在 P*******b 的大作中提到】
: 能啊,你在funcB里面wait sem1,然后在funA里面release sem1.就应该可以了吧。
avatar
c*k
11
是么

【在 c******y 的大作中提到】
: 你们两个id怎么看着这么像。。
avatar
h*0
12
是不是应该用monitor?
把B()放到一个class里面, class的构造函数必须要A()的signal。 这样只有A()被
call了,这个class才能被创建。 然后才能用class中的B()?
avatar
h*0
13
这样不行吧。。 B仍然可以先被call, 只不过被call后又退出了而已。。

【在 P*******b 的大作中提到】
: 能啊,你在funcB里面wait sem1,然后在funA里面release sem1.就应该可以了吧。
avatar
P*b
14
不是退出,是block了

【在 h*******0 的大作中提到】
: 这样不行吧。。 B仍然可以先被call, 只不过被call后又退出了而已。。
avatar
f*t
15
int i = 0;
Thread 1:
A();
i++;
Thread 2:
while(i != 1)
sleep(100);
B();
avatar
P*b
16
不加锁比较危险吧。

【在 f*******t 的大作中提到】
: int i = 0;
: Thread 1:
: A();
: i++;
: Thread 2:
: while(i != 1)
: sleep(100);
: B();

avatar
j*y
17
smart idea :)
不过还是想能不能用lock 的机制

【在 f*******t 的大作中提到】
: int i = 0;
: Thread 1:
: A();
: i++;
: Thread 2:
: while(i != 1)
: sleep(100);
: B();

avatar
h*0
18
用什么词有区别吗? 但是你的B仍然是先被call了。。

【在 P*******b 的大作中提到】
: 不是退出,是block了
avatar
P*b
19
我觉得问题的关键不在于控制是否call进去了吧。call进去马上block跟没有call区别很
大吗?如果真这样,大不了再写个wrapper的函数把信号量房外面也行吧。

【在 h*******0 的大作中提到】
: 用什么词有区别吗? 但是你的B仍然是先被call了。。
avatar
h*0
20
如果楼主真是这意思,那你写得也对。。 不过按字面意思,感觉用个wrapper比较好

别很

【在 P*******b 的大作中提到】
: 我觉得问题的关键不在于控制是否call进去了吧。call进去马上block跟没有call区别很
: 大吗?如果真这样,大不了再写个wrapper的函数把信号量房外面也行吧。

avatar
c*a
21
这样对不对啊
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有这题
avatar
l*u
22
用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 阿?

avatar
f*t
23
为什么要加锁?
只有线程1能改i的值,线程2只要读,如果i=1则A()一定已经结束

【在 P*******b 的大作中提到】
: 不加锁比较危险吧。
avatar
l*u
24
哪位给说说,俺thread用的不多,理解的对不对:
semaphore像个on/off flag,mutex lock/unlock是锁门/开门。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。