今天同事做培训讲到了线程同步的方法, 其中一个就是用到Semaphore。 Semaphore可以用在不同进程之间的线程同步, 若是在单进程中的线程同步, 使用lock或是Monitor就足够了。 正如其名 旗语就是存在多个任务, 每个任务上都插一个小旗作为互斥信号, 当有一个线程去访问该任务时, 就拔掉小旗 以示其他线程不能访问, 访问完成后再插回小旗使其他线程可以访问。
Demo:



2

3

4

5

6

7

8



9

10

11



12

13

14

15

16

17



18

19

20

21

22

23



24

25



26

27

28

29

30



31

32



33

34



35

36

37

38

39

40

41

42

43

44

45

46



47

48

49

50

51

52

53

54

55

56



57

58

59

60



61

62

63

64

65

66

67

68

69



70

71

72

73

74

75

76

77

78
