📄 module1.vb
字号:
Imports System
Imports System.Threading
Module Module1
Sub Main()
'创建类Class1的对象
Dim theClass As class1
theClass = New class1()
'构造两个线程对象
Dim threadOne As Thread
Dim threadTwo As Thread
threadOne = New Thread(AddressOf theClass.PrintOddNumber)
threadTwo = New Thread(AddressOf theClass.PrintEvenNumber)
Console.WriteLine("按 q 键退出主线程循环")
'启动线程
threadOne.Start()
threadTwo.Start()
If Console.ReadLine() = "q" Then
End
End If
End Sub
Public Class class1
'显示奇数
Public Sub PrintOddNumber()
Dim i As Integer
Monitor.Enter(Me)
For i = 1 To 9 Step 2
'FOR循环一开始就进入等待状态,
'也就是等待别的线程调用Pulse或PulseAll
Monitor.Wait(Me)
'输出一个奇数
Console.WriteLine(i)
'让处于等待的线程进入就绪状态
Monitor.Pulse(Me)
Next
Monitor.Exit(Me)
End Sub
'显示偶数
Public Sub PrintEvenNumber()
Dim i As Integer
Monitor.Enter(Me)
For i = 0 To 9 Step 2
'输出一个奇数
Console.WriteLine(i)
'让处于等待的线程进入就绪状态
Monitor.Pulse(Me)
'自己处于等待状态
Monitor.Wait(Me)
Next
Monitor.Exit(Me)
End Sub
End Class
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -