Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Teardown 03 - Mastering LinkedBlockingQueue and LinkedBlockingDeque
Teardown 03 - Linked Blocking Collections
3. Linked Blocking Collections (2:26)
3.0. Introduction (2:53)
Resources - Exercises & Slides
3.1. LinkedBlockingQueue
3.1. class LinkedBlockingQueue (11:42)
3.1.1. LinkedBlockingQueue Code Teardown
3.1.1. LinkedBlockingQueue Code Teardown (0:11)
3.1.1.1. Quick Overview of Class JavaDocs (1:30)
3.1.1.2. Explanation of "two lock algorithm" and cascading notifies (7:35)
3.1.1.3. Node class for holding items (2:17)
3.1.1.4. capacity and count fields (0:37)
3.1.1.5. head and last fields (0:19)
3.1.1.6. takeLock and putLock, with conditions, signal() methods (2:31)
3.1.1.7. enqueue(), dequeue(), preventing zombie objects in old space (11:53)
3.1.1.8. fullyLock(), fullyUnlock() (0:22)
3.1.1.9. LinkedBlockingQueue constructors (10:36)
3.1.1.10. size(), remainingCapacity() (1:29)
3.1.1.11. put(), take(), offer(), poll(), peek(), element(), remove() (16:29)
3.1.1.12. unlink() and remove(Object) (13:03)
3.1.1.13. contains(Object) and ReadWriteLock version (11:04)
3.1.1.14. toArray() and toString (5:01)
3.1.1.15. clear() (1:50)
3.1.1.16. drainTo() (8:56)
3.1.1.17. succ(Node) (1:59)
3.1.1.18. Iteration (2:18)
3.1.1.18.1. Iterator.next() (2:49)
3.1.1.18.2. Iterator.forEachRemaining() (22:23)
3.1.1.18.3. Iterator.remove() (6:03)
3.1.1.19. Spliterator (2:47)
3.1.1.19.1. Spliterator.tryAdvance() (2:08)
3.1.1.19.2. Spliterator.forEachRemaining() and forEach() (2:21)
3.1.1.19.3. Spliterator.trySplit() (9:53)
3.1.1.20. removeIf(), retainAll(), removeAll() (5:02)
3.1.1.21. writeObject(), readObject() (1:37)
3.1.1.22. Summary of LinkedBlockingQueue Teardown (10:42)
3.1.2. LinkedBlockingQueue Exercise 1
3.1.2. LinkedBlockingQueue Exercise 1 (15:04)
3.2. SequencedCollection
3.2. interface SequencedCollection (7:34)
3.2.1. SequencedCollection Code Teardown
3.2.1. SequencedCollection Quick Overview (0:07)
3.2.1.1. SequencedCollection Code Teardown (2:21)
3.2.2. SequencedCollection Exercise 2
3.2.2. SequencedCollection Exercise 2 (8:10)
3.3. Deque
3.3. interface Deque (4:07)
3.3.1. Deque Code Teardown
3.3.1. Deque Quick Overview (0:02)
3.3.1.1. Deque Code Teardown (2:44)
3.4. BlockingDeque
3.4. interface BlockingDeque (2:18)
3.4.1. BlockingDeque Code Teardown
3.4.1. BlockingQueue Quick Overview (0:06)
3.4.1.1. BlockingDeque Code Teardown (3:05)
3.5. LinkedBlockingDeque
3.5. class LinkedBlockingDeque (8:23)
3.5.1. LinkedBlockingDeque Code Teardown
3.5.1. LinkedBlockingDeque Quick Overview (5:41)
3.5.1.1. Quick Overview of Class JavaDocs (3:36)
3.5.1.2. Explanation of Implementation Notes (2:47)
3.5.1.3. Diamond Inheritance for JavaDocs (1:26)
3.5.1.4. Node class for holding items (2:21)
3.5.1.5. first and last fields for holding chain of nodes (1:32)
3.5.1.6. count and capacity (1:03)
3.5.1.7. lock and conditions (1:43)
3.5.1.8. LinkedBlockingDeque Constructors (3:26)
3.5.1.9. Bug in addAll(Collection) allowing count overflow (6:18)
3.5.1.10. Managing linked node list with linkFirst(Node), linkLast(Node), unlinkFirst(), unlinkLast(), and unlink(Node) (11:12)
3.5.1.11. BlockingDeque methods - addFirst(E), addLast(E), offerFirst(E), offerLast(E), putFirst(E), putLast(E), removeFirst(), removeLast(), pollFirst(), pollLast(), takeFirst(), takeLast(), getFirst(), getLast(), peekFirst(), and peekLast() (3:49)
3.5.1.11.1. Demo of Interrupt on take() (6:11)
3.5.1.12. removeFirstOccurance(), removeLastOccurance() (0:55)
3.5.1.13. BlockingQueue methods add(), offer(), poll(), peek(), remove(), element() (0:40)
3.5.1.14. remainingCapacity() (0:17)
3.5.1.15. drainTo() (1:31)
3.5.1.16. Stack methods push(E) and pop() (0:21)
3.5.1.17. remove(Object), contains(Object), addAll(Collection) (1:03)
3.5.1.18. toArray(), toString() (0:33)
3.5.1.19. clear(), including bug explanation (4:59)
3.5.1.20. succ(Node) (0:36)
3.5.1.21. Iteration (2:45)
3.5.1.21.1. Iterator.next() (0:50)
3.5.1.21.2. Iterator.forEachRemaining() (0:43)
3.5.1.21.3. Iterator.remove() (0:24)
3.5.1.22. Spliterator (3:13)
3.5.1.23. Bulk remove methods removeIf(), removeAll(), retainAll() (1:02)
3.5.1.24. Serialization writeObject(), readObject() (0:21)
3.5.1.25. checkInvariants() (0:50)
3.5.1.26. Summary of LinkedBlockingDeque Teardown (2:53)
3.5.2. LinkedBlockingDeque Exercises
3.5.2. LinkedBlockingDeque Exercise 3 (9:46)
3.5.2. LinkedBlockingDeque Exercise 4 (30:39)
3.6. Conclusion
3.6. Conclusion (7:55)
3.2. interface SequencedCollection
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock