Redian新闻
>
问一个verizon warranty的问题
avatar
问一个verizon warranty的问题# PennySaver - 省钱一族
G*n
1
突然收到了linkedin的onsite通知,在后天,看了一下面经有一道题不会做,是多线程
的题,最好能给出java的解法。求各位大神指点,先谢谢了。题目是
实现两个函数: H() and O(), 这两个函数会被多线程调用。当一个线程调用H或O时
,如果当前已经有至少两个线程call H和一个线程call O。那么让两个call H和一个
call O的线程返回(产生一个水分子),其他的都block。
avatar
t*e
2
目前是 flagstar上注册后用 checking每月还。我想 billpay过去。不知道怎么弄啊。
有没有搞过的给点指导。房贷是贷款公司转去 flagstar这个银行的,应该不算太小众
avatar
a*e
3
【 以下文字转载自 PDA 讨论区 】
发信人: anywhere (Backstreet's Back), 信区: PDA
标 题: 问一个verizon warranty的问题
发信站: BBS 未名空间站 (Fri Jun 17 15:23:19 2011, 美东)
原来买了个moto droid一代,后来升级的时候手机死机,就按droid forum上的建议找v
erizon换,换了两次,最后还是保留自己的了,但是第二个忘了运回去。一个是那阵子
忙别的事情,后来是想有空把手机格式化了再退,再后来放车上忘了drop off。
现在verizon给的fedex label估计也过期了,刚查了将近一年的verizon bill,好像没
有那个手机的charge。
正好今天把我的手机搞坏了,如果激活手上的这个,会不会有问题?比如突然收到一个
500多的账单?
avatar
w*d
4
个人浅见,C++风格的伪码:
mutex m;
condition hc, oc;
set hq, oq;
H() {
m.lock();
hq.insert(pthread_self());
if(hq.size() > 1 && !oq.empty()){
hc.signal();
hc.signal();
oc.signal();
}
hc.wait(&m);
hq.erase(pthread_self());
m.unlock();
}
O() {
m.lock();
oq.insert(pthread_self());
if(hq.size() > 1 && !oq.empty()){
hc.signal();
hc.signal();
oc.signal();
}
oc.wait(&m);
oq.erase(pthread_self());
m.unlock();
}
avatar
k*n
5
flagstar挺大的,设置billpay的时候填个"flagstar",系统应该可以自动匹配找到信
息,然后你填上自己的账号信息就好了。如果不放心,也可以按照mortgage coupon或
者银行给你的信自己填。
话说billpay比ach有什么好处?
avatar
w*d
6
经过实测,上面的代码有点问题:pthread里如果没有线程wait,条件变量signal是没
有任何效果的。
下面的代码是测试通过的C++代码:
CMutex m;
CCondition hc, oc;
set hq, oq;
void * H(void * arg) {
bool w = true;
m.lock();
cout<hq.insert(pthread_self());
if(hq.size() > 1 && !oq.empty()){
hc.signal();
w = (hq.size() > 2);
if(w)
hc.signal();
oc.signal();
}
if(w)
hc.wait(m);
hq.erase(pthread_self());
cout<m.unlock();
return NULL;
}
void * O(void * arg) {
bool w = true;
m.lock();
cout<oq.insert(pthread_self());
if(hq.size() > 1 && !oq.empty()){
hc.signal();
hc.signal();
w = (oq.size() > 1);
if(w)
oc.signal();
}
if(w)
oc.wait(m);
oq.erase(pthread_self());
cout<m.unlock();
return NULL;
}
avatar
t*e
7
那个 coupon应该还能找到。billpay的好处是我的gobank没死,试过billpay,系统能
找到 flagstar ,但是要输入个什么 zipcode,不知道怎么输?输入房子的 zipcode?

【在 k****n 的大作中提到】
: flagstar挺大的,设置billpay的时候填个"flagstar",系统应该可以自动匹配找到信
: 息,然后你填上自己的账号信息就好了。如果不放心,也可以按照mortgage coupon或
: 者银行给你的信自己填。
: 话说billpay比ach有什么好处?

avatar
e*m
8
把consumer/producer的代码改一改应该就可以了

【在 G*********n 的大作中提到】
: 突然收到了linkedin的onsite通知,在后天,看了一下面经有一道题不会做,是多线程
: 的题,最好能给出java的解法。求各位大神指点,先谢谢了。题目是
: 实现两个函数: H() and O(), 这两个函数会被多线程调用。当一个线程调用H或O时
: ,如果当前已经有至少两个线程call H和一个线程call O。那么让两个call H和一个
: call O的线程返回(产生一个水分子),其他的都block。

avatar
G*n
9
谢谢哈,不是很熟multithread programming

【在 w*****d 的大作中提到】
: 经过实测,上面的代码有点问题:pthread里如果没有线程wait,条件变量signal是没
: 有任何效果的。
: 下面的代码是测试通过的C++代码:
: CMutex m;
: CCondition hc, oc;
: set hq, oq;
: void * H(void * arg) {
: bool w = true;
: m.lock();
: cout<
avatar
G*n
10
谢谢!

【在 e***m 的大作中提到】
: 把consumer/producer的代码改一改应该就可以了
avatar
w*a
11
C++11的
condition_variable gOReady, gHReady;
int atomcountH = 2, atomcountO = 1;
void O() {
unique_lock l(gLock);
gHReady.wait(l, []{return atomcountO > 0;});

cout << "O" << endl;
if(--atomcountO == 0 && atomcountH == 0) {
atomcountH = 2;
atomcountO = 1;
cout << "water" << endl;
}
gOReady.notify_all();
}
void H() {
unique_lock l(gLock);
gOReady.wait(l, []{return atomcountH > 0;});

cout << "H" << endl;
if(--atomcountH == 0 && atomcountO == 0) {
atomcountH = 2;
atomcountO = 1;
cout << "water" << endl;
}
gHReady.notify_all();
}
这个答案好使不
avatar
M*u
12
有没有大神给个java版。。
avatar
M*o
13
这个如何?
private static int NUM_OS = 1;
private static int NUM_HS = 2;
private Semaphore oS = new Semaphore(NUM_OS);
private Semaphore hS = new Semaphore(NUM_HS);
private Semaphore entryS = new Semaphore(1);
public YourClass() {
oS.drainPermits();
hS.drainPermits();
}
public void O() {
entryS.acquire();
if (!tryAcquire(oS)) {
if (canGenerateH2O()) {
releaseForH2O();
entryS.release();
} else {
entryS.release();
oS.aquire();
}
} else {
entryS.release();
}
// business logic.
}
public void H() {
entryS.acquire();
if (!tryAcquire(hS)) {
if (canGenerateH2O()) {
releaseForH2O();
entryS.release();
} else {
entryS.release();
hS.aquire();
}
} else {
entryS.release();
}
// business logic.
}
private void canGenerateH2O() {
return hS.availablePermits() == 0 && hS.getQueueLength() >= NUM_HS && oS
.availablePermits() == 0 && oS.getQueueLength() >= NUM_OS;
}
private void releaseForH2O() {
hS.release(NUM_HS);
oS.release(NUM_OS);
}

【在 M******u 的大作中提到】
: 有没有大神给个java版。。
avatar
m*k
14
貌似一,两年前在本版见过, 当时也觉得P/C 改改就应该行吧
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。