https://github.com/brandaof/named-lock
The named-lock is a utility for acquiring named locks.
https://github.com/brandaof/named-lock
acquiring-named-locks concurrency concurrent-programming java java-named-lock lock named-lock
Last synced: 3 months ago
JSON representation
The named-lock is a utility for acquiring named locks.
- Host: GitHub
- URL: https://github.com/brandaof/named-lock
- Owner: brandaof
- Created: 2016-08-22T01:17:54.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-11-10T20:43:09.000Z (over 8 years ago)
- Last Synced: 2025-01-12T22:14:51.063Z (5 months ago)
- Topics: acquiring-named-locks, concurrency, concurrent-programming, java, java-named-lock, lock, named-lock
- Language: Java
- Homepage: http://namedlock.brandao.org/
- Size: 159 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Java named lock
### 1 Quick Reference.
The named-lock is a utility for acquiring named locks.
#### 1.1 Named factory.
Main class
```java
public class Test {public static void main(String[] args) throws InterruptedException{
NamedLockFactory lockFactory = new NamedLockFactory();
System.out.println("start test");Lock lock = lockFactory.getLock("lock_name");
lock.lock();
try{
Task task = new Task(lockFactory);
task.start();
Thread.sleep(1000);
System.out.println("1");
}
finally{
lock.unlock();
}Thread.sleep(1000);
System.out.println("end test");
}}
```Task class
```java
public class Task extends Thread{private NamedLockFactory lockFactory;
public Task(NamedLockFactory lockFactory){
this.lockFactory = lockFactory;
}public void run(){
Lock lock = lockFactory.getLock("lock_name");
lock.lock();
try{
System.out.println("2");
}
finally{
lock.unlock();
}}
}
```output:
```
start test
1
2
end test
```#### 1.2 Named lock.
```java
NamedLock namedLock = new NamedLock()
Serializable refLock = namedLock.lock("lock_name");
try{
// manipulate protected state
}
finally{
namedLock.unlock(refLock, "lock_name");
}
```