获取对象级并发性 - JAVA

时间:2018-04-16 15:28:20

标签: java multithreading concurrency

我是多线程的新手,在对象级锁定方面需要一些帮助。提前谢谢。

我在每个类中都有两个类说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 "";
   }
}

1 个答案:

答案 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代码。所以这意味着一个人不能用另一个线程调用另一个方法。

对于另一个人,他也不能调用出勤对象。因此,您需要为第二个人创建一个新的出勤对象。