我是多线程的新手,在对象级锁定方面需要一些帮助。提前谢谢。
我在每个类中都有两个类说Person和Attendance以及2个方法(setAttendance,getAttendance),这样Class Person的方法调用Class Attendance的特定方法。类出勤中的两个方法都是同步的。 我希望以如下方式获得并发:如果方法1正在进行,则方法2不能由同一用户调用。我想获得对象级别锁定并希望在会话级别创建对象,即在会话级别获取并发(即方法被锁定为1个用户,但如果Web应用程序被其他用户访问,他可以访问该方法,如果它没被他锁定) 以下是代码段:
class Person{
//method 1
public void setAttendance(){
//call setAttendance method of class Ateendance
}
//method 2
public void getAttendance(){
//call getAttendance method of class Ateendance
}
}
// methods of class Attendance are called from Person class
Class Attendance{
// method 1
void synchronized setAttendance(String str){
}
// method 2
String synchronized getAttendance(){
return "";
}
}
答案 0 :(得分:1)
#ng -v
Unable to find "@angular/cli" in devDependencies.
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 1.7.4
Node: 8.11.1
OS: darwin x64
Angular: 5.2.9
... animations, common, compiler, compiler-cli, core, forms
... http, platform-browser, platform-browser-dynamic
@angular-devkit/build-optimizer: 0.0.35
typescript: 2.6.2
webpack: 3.8.1
#ionic -v
3.20.0
使用Attendance
定义的两个方法就足够了。这意味着如果对象的方法是由一个线程调用的,则所有其他线程都不能调用synchronized
代码。所以这意味着一个人不能用另一个线程调用另一个方法。
对于另一个人,他也不能调用出勤对象。因此,您需要为第二个人创建一个新的出勤对象。