1
1

00:00:00,000  -->  00:00:03,780
xin chào mừng trở lại trong bài học này, chúng tôi
2

2

00:00:01,979  -->  00:00:06,450
sẽ được nhìn vào đếm semaphores
3

3

00:00:03,780  -->  00:00:09,000
Vì vậy, để sử dụng semaphores chúng ta phải
4

4

00:00:06,450  -->  00:00:11,880
cho phép đếm semaphores miễn phí
5

5

00:00:09,000  -->  00:00:14,849
cung thủ cấu hình tập tin tuổi đơn giản chỉ cần
6

6

00:00:11,880  -->  00:00:17,760
để thiết lập cấu hình, sử dụng số gạch dưới
7

7

00:00:14,849  -->  00:00:21,060
trong semaphore gạch dưới đến 1 bên phải
8

8

00:00:17,760  -->  00:00:22,920
di chuyển trên vì vậy semaphores là
9

9

00:00:21,060  -->  00:00:25,619
thường được sử dụng cho hai thứ
10

10

00:00:22,920  -->  00:00:28,410
đếm các sự kiện và cho tài nguyên
11

11

00:00:25,619  -->  00:00:30,929
quản lý trong kịch bản đếm
12

12

00:00:28,410  -->  00:00:33,450
sự kiện một xử lý sự kiện sẽ cung cấp cho một
13

13

00:00:30,929  -->  00:00:36,360
semaphore mỗi khi một sự kiện quan tâm
14

14

00:00:33,450  -->  00:00:39,660
gây ra các giá trị hiện tại
15

15

00:00:36,360  -->  00:00:42,180
được tăng lên trên mỗi cho một nhiệm vụ sẽ
16

16

00:00:39,660  -->  00:00:44,820
mất một semaphore mỗi lần quá trình của nó
17

17

00:00:42,180  -->  00:00:47,399
và sự kiện gây ra số lượng semaphore
18

18

00:00:44,820  -->  00:00:49,620
giá trị được giảm trên mỗi mất
19

19

00:00:47,399  -->  00:00:51,660
giá trị đếm là sự khác biệt giữa
20

20

00:00:49,620  -->  00:00:54,360
số lượng các sự kiện đã xảy ra
21

21

00:00:51,660  -->  00:00:57,059
và số đã được xử lý
22

22

00:00:54,360  -->  00:01:00,809
khi chúng ta đang sử dụng đếm semaphores
23

23

00:00:57,059  -->  00:01:03,480
để đếm sự kiện, chúng ta phải khởi tạo
24

24

00:01:00,809  -->  00:01:05,610
semaphore về 0 trong tiếp theo
25

25

00:01:03,480  -->  00:01:08,280
kịch bản và kịch bản tài nguyên
26

26

00:01:05,610  -->  00:01:11,130
quản lý giá trị đếm cho biết
27

27

00:01:08,280  -->  00:01:13,799
số lượng tài nguyên có sẵn để có được
28

28

00:01:11,130  -->  00:01:16,830
kiểm soát tài nguyên trước tiên
29

29

00:01:13,799  -->  00:01:19,770
có được một semaphore và sự suy giảm này
30

30

00:01:16,830  -->  00:01:22,229
các semaphores đếm giá trị khi
31

31

00:01:19,770  -->  00:01:25,290
giá trị đếm đến không có nghĩa là
32

32

00:01:22,229  -->  00:01:28,080
không có tài nguyên có sẵn khi một
33

33

00:01:25,290  -->  00:01:31,079
nhiệm vụ kết thúc bằng cách sử dụng tài nguyên mà nó cung cấp
34

34

00:01:28,080  -->  00:01:34,049
trở lại semaphore và sự gia tăng này
35

35

00:01:31,079  -->  00:01:36,000
giá trị semaphore đếm semaphores
36

36

00:01:34,049  -->  00:01:38,850
được sử dụng để quản lý tài nguyên
37

37

00:01:36,000  -->  00:01:40,799
được tạo để có giá trị đếm ban đầu
38

38

00:01:38,850  -->  00:01:43,920
bằng số lượng tài nguyên
39

39

00:01:40,799  -->  00:01:46,920
có sẵn bây giờ hãy xem một số
40

40

00:01:43,920  -->  00:01:48,810
của api hoặc chức năng chúng ta cần khi
41

41

00:01:46,920  -->  00:01:51,659
đối phó với đếm semaphores
42

42

00:01:48,810  -->  00:01:54,780
Vì vậy, để tạo ra một semaphore nội dung, chúng ta phải
43

43

00:01:51,659  -->  00:01:56,460
sử dụng XML cho chức năng đếm tuyệt vời
44

44

00:01:54,780  -->  00:01:58,950
và hàm này có hai đối số
45

45

00:01:56,460  -->  00:02:01,110
đối số đầu tiên được gọi là UX
46

46

00:01:58,950  -->  00:02:04,140
số lượng tối đa và đối số thứ hai là
47

47

00:02:01,110  -->  00:02:06,420
được gọi là UX ban đầu đếm tối đa UX
48

48

00:02:04,140  -->  00:02:09,239
số lượng là giá trị tối đa mà
49

49

00:02:06,420  -->  00:02:11,730
semaphore sẽ tính và khi
50

50

00:02:09,239  -->  00:02:13,740
semaphore sẽ được sử dụng để đếm sự kiện
51

51

00:02:11,730  -->  00:02:16,350
số lượng UX math.max
52

52

00:02:13,740  -->  00:02:18,810
là số lượng sự kiện tối đa có thể
53

53

00:02:16,350  -->  00:02:20,880
được tính khi semaphore được sử dụng để
54

54

00:02:18,810  -->  00:02:23,760
quản lý quyền truy cập vào bộ sưu tập
55

55

00:02:20,880  -->  00:02:25,680
tài nguyên số lượng tối đa UX nên được đặt
56

56

00:02:23,760  -->  00:02:29,520
đến tổng số tài nguyên
57

57

00:02:25,680  -->  00:02:32,550
có sẵn đối số tiếp theo UX
58

58

00:02:29,520  -->  00:02:34,590
số ban đầu là giá trị đếm ban đầu
59

59

00:02:32,550  -->  00:02:36,900
của semaphore sau khi nó đã được
60

60

00:02:34,590  -->  00:02:39,420
được tạo ra khi semaphore được sử dụng
61

61

00:02:36,900  -->  00:02:42,180
để đếm các sự kiện, số đếm ban đầu của UX
62

62

00:02:39,420  -->  00:02:44,190
nên được đặt thành không, điều này có nghĩa là khi chúng ta
63

63

00:02:42,180  -->  00:02:46,680
tạo semaphore không có sự kiện chúng tôi hoặc
64

64

00:02:44,190  -->  00:02:48,990
Do đó quan tâm bằng không và khi
65

65

00:02:46,680  -->  00:02:50,670
semaphore được sử dụng để quản lý truy cập vào một
66

66

00:02:48,990  -->  00:02:54,660
bộ sưu tập tài nguyên X mới
67

67

00:02:50,670  -->  00:02:58,230
số lượng ban đầu nên được đặt thành hai bằng nhau
68

68

00:02:54,660  -->  00:03:00,270
Số lượng tối đa của UX Mak và điều này có nghĩa là khi
69

69

00:02:58,230  -->  00:03:03,300
semaphore được tạo ra tất cả các tài nguyên được
70

70

00:03:00,270  -->  00:03:07,890
có sẵn để chúng tôi đặt số lượng ban đầu UX
71

71

00:03:03,300  -->  00:03:09,720
bằng với số lượng tối đa UX đúng vì vậy chúng tôi
72

72

00:03:07,890  -->  00:03:11,610
sẽ tiếp tục và sau đó thử một số
73

73

00:03:09,720  -->  00:03:15,020
semaphores và xem cách họ thực sự
74

74

00:03:11,610  -->  00:03:15,020
làm việc trong mã thực
