📄 module1.vb
字号:
Imports System
Imports System.Threading
Module Module1
Sub main()
Dim theClass As New class1()
theClass.startDo()
End Sub
Public Class class1
Public mutex1 As Mutex
Public Sub startDo()
mutex1 = New Mutex(False)
'构造三个线程
Dim threadOne As Thread
Dim threadTwo As Thread
threadOne = New Thread(AddressOf MethodOne)
threadTwo = New Thread(AddressOf MethodTwo)
'启动线程
threadOne.Start()
threadTwo.Start()
'主线程无限循环
While True
'如果按下q键并回车则结束3个子线程,退出循环
Dim ch As String = Console.ReadLine()
If ch = "q" Then
threadOne.Abort()
threadOne.Join()
threadTwo.Abort()
threadTwo.Join()
Exit While
End If
End While
End Sub
Public Sub MethodOne()
'无限循环
While True
Me.mutex1.WaitOne()
Console.WriteLine("线程1进入临界区域!")
Thread.Sleep(2000)
Console.WriteLine("线程1退出临界区域!")
Me.mutex1.ReleaseMutex()
End While
End Sub
Public Sub MethodTwo()
'无限循环
While True
Me.mutex1.WaitOne()
Console.WriteLine("线程2进入临界区域!")
Thread.Sleep(2000)
Console.WriteLine("线程2退出临界区域!")
Me.mutex1.ReleaseMutex()
End While
End Sub
End Class
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -