9- Strategies for Thread Safety
Jul 03, 2026 15:08
· 2:50
· English
· Whisper Turbo
· 3 דוברים
תעתיק זה פג היום.
שדרוג לאחסון קבוע →
מציג בלבד
0:03
S…
Speaker 2 (9- Strategies for Thread Safety)
We have a few strategies for writing thread safe code.
0:06
S…
Speaker 2 (9- Strategies for Thread Safety)
That is code that can be safely executed across multiple threads.
0:10
S…
Speaker 2 (9- Strategies for Thread Safety)
The simplest solution is not to share data across threads in the first
0:14
S…
Speaker 2 (9- Strategies for Thread Safety)
place. This is called confinement because we want to confine or restrict
0:18
S…
Speaker 2 (9- Strategies for Thread Safety)
each thread to have its own data.
0:20
S…
Speaker 1 (9- Strategies for Thread Safety)
For example,
0:22
S…
Speaker 2 (9- Strategies for Thread Safety)
instead of sharing a download status object across many download tasks,
0:26
S…
Speaker 2 (9- Strategies for Thread Safety)
you could have each download task have its own download status object.
0:30
S…
Speaker 2 (9- Strategies for Thread Safety)
When all these tasks are complete,
0:31
S…
Speaker 2 (9- Strategies for Thread Safety)
we can combine the result.
0:33
S…
Speaker 2 (9- Strategies for Thread Safety)
So this is the simplest strategy.
0:35
S…
Speaker 2 (9- Strategies for Thread Safety)
I will show you how to do this in the next video.
0:37
S…
Speaker 2 (9- Strategies for Thread Safety)
Another strategy is using immutable or unchangeable
0:41
S…
Speaker 2 (9- Strategies for Thread Safety)
objects.
0:42
S…
Speaker 2 (9- Strategies for Thread Safety)
An object is immutable if its state or data cannot be
0:46
S…
Speaker 2 (9- Strategies for Thread Safety)
changed after it's created.
0:48
S…
Speaker 1 (9- Strategies for Thread Safety)
For example,
0:49
S…
Speaker 2 (9- Strategies for Thread Safety)
the string class in Java is immutable.
0:51
S…
Speaker 2 (9- Strategies for Thread Safety)
If we convert a string to uppercase,
0:53
S…
Speaker 2 (9- Strategies for Thread Safety)
we get a new string object.
0:55
S…
Speaker 2 (9- Strategies for Thread Safety)
The original string object is not changed.
0:58
S…
Speaker 1 (9- Strategies for Thread Safety)
So,
0:58
S…
Speaker 2 (9- Strategies for Thread Safety)
sharing immutable objects between threads is totally fine because these
1:02
S…
Speaker 2 (9- Strategies for Thread Safety)
threads can only read immutable objects.
1:05
S…
Speaker 2 (9- Strategies for Thread Safety)
They cannot modify them.
1:06
S…
Speaker 2 (9- Strategies for Thread Safety)
Another strategy is to prevent multiple threads from accessing
1:10
S…
Speaker 2 (9- Strategies for Thread Safety)
the same object concurrently.
1:12
S…
Speaker 2 (9- Strategies for Thread Safety)
This is called synchronization because we synchronize or coordinate the access
1:16
S…
Speaker 2 (9- Strategies for Thread Safety)
to an object across different threads.
1:18
S…
Speaker 2 (9- Strategies for Thread Safety)
We do that by using locks.
1:20
S…
Speaker 2 (9- Strategies for Thread Safety)
So we put a lock on certain parts of our code and only one
1:24
S…
Speaker 2 (9- Strategies for Thread Safety)
thread at a time can execute that part.
1:26
S…
Speaker 2 (9- Strategies for Thread Safety)
Other threads have to wait.
1:28
S…
Speaker 2 (9- Strategies for Thread Safety)
So synchronization forces the code to run sequentially,
1:31
S…
Speaker 2 (9- Strategies for Thread Safety)
which is against the idea of concurrency.
1:33
S…
Speaker 1 (9- Strategies for Thread Safety)
Plus,
1:34
S…
Speaker 2 (9- Strategies for Thread Safety)
implementing synchronization is challenging and error prone.
1:38
S…
Speaker 2 (9- Strategies for Thread Safety)
One of the problems we may run into is a deadlock which happens when two threads
1:42
S…
Speaker 2 (9- Strategies for Thread Safety)
wait for each other indefinitely.
1:44
S…
Speaker 2 (9- Strategies for Thread Safety)
So thread one waits for thread two and at the same time thread
1:48
S…
Speaker 2 (9- Strategies for Thread Safety)
two waits for thread one.
1:49
S…
Speaker 2 (9- Strategies for Thread Safety)
That's a deadlock and can cause our application to crash.
1:53
S…
Speaker 2 (9- Strategies for Thread Safety)
So generally speaking synchronization is bad and you should avoid it
1:57
S…
Speaker 2 (9- Strategies for Thread Safety)
as much as possible.
1:58
S…
Speaker 2 (9- Strategies for Thread Safety)
Another strategy is to use atomic classes in Java like atomic integer.
2:02
S…
Speaker 2 (9- Strategies for Thread Safety)
These classes allow us to achieve threat safety without using locks.
2:06
S…
Speaker 2 (9- Strategies for Thread Safety)
So if we increment an atomic integer,
2:08
S…
Speaker 2 (9- Strategies for Thread Safety)
the Java virtual machine will execute the increment operation as one
2:12
S…
Speaker 2 (9- Strategies for Thread Safety)
single atomic operation.
2:14
S…
Speaker 2 (9- Strategies for Thread Safety)
It's not going to break it down into three smaller operations.
2:17
S…
Speaker 2 (9- Strategies for Thread Safety)
That's why they're called atomic.
2:19
S…
Speaker 2 (9- Strategies for Thread Safety)
They're like atoms.
2:20
S…
Speaker 2 (9- Strategies for Thread Safety)
They cannot be broken down.
2:22
S…
Speaker 3 (9- Strategies for Thread Safety)
And finally,
2:23
S…
Speaker 2 (9- Strategies for Thread Safety)
another strategy is partitioning data into segments that can be accessed
2:27
S…
Speaker 2 (9- Strategies for Thread Safety)
concurrently.
2:28
S…
Speaker 2 (9- Strategies for Thread Safety)
Java provides a number of collection classes that support concurrency using
2:32
S…
Speaker 2 (9- Strategies for Thread Safety)
partitioning.
2:33
S…
Speaker 2 (9- Strategies for Thread Safety)
So multiple threads can access a collection object,
2:35
S…
Speaker 2 (9- Strategies for Thread Safety)
but only one thread at a time can access a segment in that collection.
2:40
S…
Speaker 2 (9- Strategies for Thread Safety)
So these are five common strategies we have for writing thread safe code.
2:44
S…
Speaker 2 (9- Strategies for Thread Safety)
Over the next few lessons,
2:45
S…
Speaker 2 (9- Strategies for Thread Safety)
we're going to explore each of these strategies.
תעתיק זה נוצר על ידי AI (הכרה אוטומטית של דיבור). ייתכן שיש בו שגיאות אשר מאשרות את השמע המקורי לשימוש קריטי. מדיניות AI
תקציר
לחץ לסכם כדי ליצור סיכום AI של תעתיק זה.
מסכם...
שאל את אל על התעתיק הזה.
שאל כל דבר על התמליל הזה, הבינה המלאכותית תמצא חלקים רלוונטיים ותענה.