9- Strategies for Thread Safety
Jul 03, 2026 15:08
· 2:50
· English
· Whisper Turbo
· 3 Hökmdar
Bu transkriptin müddəti bu gün bitəcək.
Daimi saxlama üçün yüksəlt →
Yalnız göstər
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.
Bu transkript AI (avtomatik səs tanıması) tərəfindən yaradılmışdır. Xətalar ola bilər - kritik istifadə üçün orijinal səslə müqayisə edin. AI siyasəti
İcmal
Bu transkriptin AI qısa mə'lumatını yaratmaq üçün Summarize düyməsini basın.
İcmallaşdırılır...
Bu transkript haqqında AI-dən soruş
Bu transkript haqqında hər şeyi soruşun — AI uyğun hissələri tapacaq və cavab verəcək.