Skip to content

Commit b055cb5

Browse files
authored
I came from the Father, and am come into the world
I came forth from the Father, and am come into the world: again, I leave the world, and go to the Father. (John 16:28)
1 parent 0ffa1bf commit b055cb5

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
2+
//I came forth from the Father, and am come into the world: again, I leave the world, and go to the Father. (John 16:28)
3+
4+
package com.javarush.task.task28.task2811;
5+
6+
/*
7+
ReentrantReadWriteLock
8+
*/
9+
10+
import java.util.LinkedHashMap;
11+
12+
public class Solution {
13+
public static void main(String[] args) {
14+
ReadWriteMap<Integer, String> linkedSafeMap = new ReadWriteMap<>(new LinkedHashMap<>());
15+
}
16+
}
17+
18+
/*
19+
ReentrantReadWriteLock
20+
21+
Класс ReadWriteMap должен предоставлять корректный доступ к объекту Map из многих потоков, но в его реализации были допущены ошибки. Найди их и исправь.
22+
23+
24+
25+
P.S. Для корректной работы Map в многопоточной среде, желательно пользоваться стандартной реализацией, например ConcurrentHashMap из пакета java.util.concurrent. Но иногда требуется работа с другим типом мапы, например LinkedHashMap и тогда предложенное решение будет как никогда кстати.
26+
27+
28+
29+
30+
31+
Требования:
32+
33+
1. Поле readLock должно быть инициализировано с помощью метода readLock вызванного на объекте lock.
34+
35+
2. Поле writeLock должно быть инициализировано с помощью метода writeLock вызванного на объекте lock.
36+
37+
3. В методе put должен быть вызван метод lock на объекте writeLock.
38+
39+
4. В методе get должен быть вызван метод lock на объекте readLock.
40+
41+
5. В методе put в блоке finally должен быть вызван метод unlock на объекте writeLock.
42+
43+
6. В методе get в блоке finally должен быть вызван метод unlock на объекте readLock.
44+
*/

0 commit comments

Comments
 (0)