Luyện nói tiếng Anh bằng Shadowing qua video: 🚫 Java Deadlock Explained: Why Your Code is Stuck 😱 (Beginners Must Watch!)

Đang tạo bài học...
1
We have seen deadlock example.
2
We have given the example of the lock.
3
But we are going to read deadlock officially.
4
I will give you a example of how the code looks.
5
We will see deadlock doesn't work.
6
We will see how it will resolve.
7
First of all, what is formal definition?
8
In multi-threading, deadlock is a situation where the threats are always blocked.
9
And they depend on the other side.
10
For example, A and B, A has a pen and a paper.
11
A waits for B, when he gives a paper, then I start to write.
12
B waits for A, when he gives a pen, then I start to write.
13
Just, nothing is wrong.
14
One is waiting for another.
15
So, the work will not be wrong and wait for forever.
16
So, this is a condition called deadlock.
17
Formal, formal.
18
Formal, when it comes to match, the deadlock is called.
19
Mutual exclusion.
20
Sir, our critical section is called, which should be locked.
21
First thing is obvious.
22
Then there will be a wait.
23
Another thing is, Hold and wait.
24
A thread holding at least one resource is waiting to acquire.
25
Obviously.
26
Third thing is no preemption.
27
You can't remove pen or pencil.
28
You can't remove paper.
29
We haven't read this yet.
30
It's circular wait.
31
This is obvious.
32
The obvious thing is, they divide in 4 parts.
33
It's false.
34
But obviously, if someone's mind is bad, then they can ask.
35
Okay, sir.
36
So, theory has happened.
37
Sir, a real life example.
38
I have given you a class pen and a class paper.
39
What is written in pen?
40
Write with pen and paper.
41
It is a method.
42
It is called paper.finishedWriting.
43
Another class is class paper.
44
It is called write with write with paper and pen.
45
And then finish writing method.
46
I am going to show you the functionality.
47
What is written in the upper part?
48
I will go in the upper part.
49
I will make two threads.
50
Task 1.
51
The next thread is task 2.
52
In the main thread, a pen and a paper and the threads are made.
53
Then I will start.
54
I am giving a high level overview.
55
Thread 1 is using pen and is trying to use paper.
56
Thread 2 is using paper and trying to use pen.
57
And it's going infinitely.
58
I will close it to forcefully.
59
The condition is the same.
60
Two threads have two people.
61
One has pen and trying to use paper.
62
The other one has B.
63
The other one has paper and trying to use pen.
64
The solution is not coming.
65
This is deadlock.
66
Now, look at the code.
67
There are two methods, paper, and two threads.
68
Task 1 and Task 2.
69
We will create the object in that two objects.
70
Pen and paper.
71
Similarly with Task 2.
72
When we create the object in Task 2, we will create the object in the constructor.
73
Obviously, one pen will be and one paper.
74
So, two people are.
75
Thread 1 and Thread 2.
76
There are two things.
77
One pen and one paper.
78
Thread 1 is written in the first one.
79
One person has pen.
80
Pen.Write with pen and paper.
81
The other person has paper.
82
Now we are going to pen and paper class.
83
Pen has two methods.
84
Write with pen and paper and finish writing.
85
Paper has two methods.
86
Write with paper and pen and finish writing.
87
Pen has been written in thread 1.
88
Synchronize is put.
89
When a method is declared by synchronized keyword,
90
this method will acquire the intrinsic lock of the object the method belongs to.
91
Pen will acquire the method.
92
Pen will acquire the method.
93
And then, paper.finish writing.
94
This method will need paper and pen,
95
so it comes to paper and pen.
96
and he is trying to run pen.finish writing.
97
When will it run pen?
98
When it has a pen lock.
99
What do you mean?
100
It depends on the other one.
101
What is thread 1?
102
It has a pen.
103
And trying to use paper.
104
Similarly thread 2 is using paper and trying to use pen.
105
But nothing is happening.
106
Then we close it.
107
What is deadlock?
108
If it has not been done, then see it again.
109
I am saying it again.
110
Now I need to resolve this, I need to resolve this, deadlock is not necessary.
111
So what can I do?
112
There are many strategies.
113
What is common approach?
114
Ensure that all the threats are consistent order to acquire locks.
115
Consistent order means that multiple threats which are required to acquire locks and multiple resources,
116
they should always acquire the resources in the same sequence.
117
Class pen and paper Here is the lock acquired.
118
What is the lock?
119
The pen and paper are the same.
120
We will do the same work.
121
If we change the lock, then the result will be deadlock.
122
Now, Task 1 is going to lock pen and paper.
123
Task 2 is going to lock pen and pen.
124
What do we do?
125
We use the synchronized keyword.
126
We want to lock and pen.
127
We will say Task 2 is going to lock pen and pen.
128
Then, paper can lock.
129
This is the two things.
130
I will put it here.
131
It will make sure that thread 2 is going to lock pen.
132
When you have pen lock, it's a good thing.
133
But pen lock is a thread 1, no matter what you will do.
134
And paper lock will come, because thread to run not.
135
Because thread to run, you should have pen lock, then paper lock will acquire.
136
So, understand how now.
137
If we change ordering, consistent ordering,
138
lock will acquire, we can resolve the deadlock.
139
Okay?
140
Now, keep the tension so much.
141
Keep the tension so much.
142
Sir, we have a small example which we have resolved.
143
That's it.
144
Keep the tension so much.
145
Keep the tension so much.
146
Okay, sir.

Cảnh Huống Thực Tế

Trong video này, chúng ta được giới thiệu về tình huống thực tế mà nhiều lập trình viên có thể gặp phải khi xử lý đa luồng. Hãy tưởng tượng A và B đang làm việc cùng nhau, A có một cây bút và một tờ giấy, trong khi B cần cây bút để bắt đầu viết. A không thể viết nếu không có tờ giấy từ B, và ngược lại. Tình trạng này tạo ra một vòng lặp chờ đợi không hồi kết, chính là deadlock. Tình huống này không chỉ xảy ra trong lập trình mà còn trong cuộc sống hàng ngày, nơi mỗi người đều cần sự hỗ trợ từ người khác nhưng lại không thể tiến hành công việc của mình.

Cụm Từ Hữu Ích & Các Kết Hợp Từ

  • Đợi và giữ: "Hold and wait" - trạng thái khi một luồng đang giữ ít nhất một tài nguyên nhưng lại chờ để lấy thêm tài nguyên khác.
  • Không thể loại bỏ: "No preemption" - không thể lấy đi tài nguyên của người khác.
  • Phân chia vòng tròn: "Circular wait" - vòng tròn của sự chờ đợi giữa các luồng.
  • Khu vực quan trọng: "Critical section" - phần mã cần được bảo vệ khỏi sự truy cập đồng thời của nhiều luồng.
  • Khóa tài nguyên: "Lock resource" - hành động khóa tài nguyên để đảm bảo an toàn trong quá trình truy cập.

Thách Thức Shadowing Của Bạn

Để rèn luyện khả năng phát âm tiếng Anh chuẩn và cải thiện kỹ năng nói, bạn hãy thử thách bản thân với phần mềm shadowing. Chọn một đoạn hội thoại từ video, ghi âm lại giọng nói của chính mình khi ngân nga theo những gì đã nghe. Bạn hãy chú ý đến ngữ điệu và cách nhấn nhá của người nói trong video. Điều này sẽ giúp bạn nắm vững cách sử dụng các cụm từ hữu ích mà chúng ta đã đề cập ở trên. Hãy lặp đi lặp lại cho đến khi bạn cảm thấy tự tin với cách phát âm của mình. Đừng quên chia sẻ kết quả với bạn bè và luyện tập cùng nhau trên các shadowing site để có thêm động lực nhé!

Ngữ pháp trong video

Những cấu trúc người nói dùng nhiều nhất, kèm đúng cụm từ trong video:

Cấu trúcTrong video
Câu bị động be + quá khứ phân từ — nhấn vào việc xảy ra, không phải người làmare always blocked · is called · is written
Thì hiện tại hoàn thành have/has + quá khứ phân từ — việc đã xảy ra nhưng còn liên quan đến hiện tạihave seen · have given · haven't read

Phương Pháp Shadowing Là Gì?

Shadowing là kỹ thuật học ngôn ngữ có cơ sở khoa học, ban đầu được phát triển cho chương trình đào tạo phiên dịch viên chuyên nghiệp và được phổ biến rộng rãi bởi nhà đa ngôn ngữ học Dr. Alexander Arguelles. Nguyên lý cốt lõi đơn giản nhưng cực kỳ hiệu quả: bạn nghe tiếng Anh của người bản xứ và lặp lại to ngay lập tức — như một "cái bóng" (shadow) đuổi theo người nói với độ trễ chỉ 1–2 giây. Khác với luyện ngữ pháp hay học từ vựng bị động, Shadowing buộc não bộ và cơ miệng phải đồng thời xử lý và tái tạo ngôn ngữ thực tế. Các nghiên cứu khoa học xác nhận phương pháp này cải thiện đáng kể phát âm, ngữ điệu, nhịp điệu, nối âm, kỹ năng nghe và độ lưu loát khi nói — đặc biệt hiệu quả cho người luyện IELTS Speaking và muốn giao tiếp tiếng Anh tự nhiên như người bản ngữ.

Phương pháp shadowing: đọc hướng dẫn từng bước đầy đủ →