由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一个java Synchronized Blocks和Lock的问题
相关主题
一道关于lock的面试题一个c++题(exception handling)
thread safe blocking queue问题请教一个C++的问题
这个Java blocking queue实现是不是有问题?问个简单的C++ 函数参数问题
出个题贴两道面试题
关于java的疑惑问个thread synchronization的问题
求教一个今天被面到的多线程的问题onsite归来,有一个c的问题不知道怎么回答(EE, CS请进)
google面试的多线程问题select2perform上面C++测试挺头疼的
菜鸟请教多线程怎么学c++ new的一个问题
相关话题的讨论汇总
话题: lock话题: islocked话题: public话题: 函数
进入JobHunting版参与讨论
1 (共1页)
f********c
发帖数: 147
1
1. 假如一个class里面有个method like this:
"public synchronized void add(int value){
this.count += value;
}"
如果有这个class的一个instance在两个不同的threads分别call这个函数,如果第二个
thread call这个函数的时候,会发生什么?是说因为这个函数是sychronized而且同时
有另一个thread在call这个函数,所以就一直等直到之前的thread执行结束再去call这
个函数吗?
2.看到一个implement lock的例子:
“public class Counter{
private Lock lock = new Lock();
private int count = 0;
public int inc(){
lock.lock();
int newCount = ++count;
lock.unlock();
return newCount;
}
}
public class Lock{
private boolean isLocked = false;
public synchronized void lock()
throws InterruptedException{
while(isLocked){
wait();
}
isLocked = true;
}
public synchronized void unlock(){
isLocked = false;
notify();
}
}”
在实现Lock class的时候,那个synchronized keyword可以去掉吗?
描述有点繁琐,希望我说明白了...求解答!
f********c
发帖数: 147
2
顶一下
d******u
发帖数: 1142
3
1. yes.
2. 不能去掉,否则会有 race condition。
1 (共1页)
进入JobHunting版参与讨论
相关主题
c++ new的一个问题关于java的疑惑
C++里面能否检测一个虚函数是否被重载?求教一个今天被面到的多线程的问题
答面试题时候写函数, 返回类型非指针也非void的google面试的多线程问题
面试时候差点想直接推门走,真有这感觉!菜鸟请教多线程怎么学
一道关于lock的面试题一个c++题(exception handling)
thread safe blocking queue问题请教一个C++的问题
这个Java blocking queue实现是不是有问题?问个简单的C++ 函数参数问题
出个题贴两道面试题
相关话题的讨论汇总
话题: lock话题: islocked话题: public话题: 函数