⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.vb

📁 适合VB初学者看
💻 VB
字号:
Imports System
Imports System.Threading
Module Module1
    '共享资源
    Public lockData As Object = New Object()
    Sub Main()
        '构造二个对象,并赋给Object对象
        Dim setZeroData1 As ClassOne = New ClassOne()
        Dim setOneData1 As ClassTwo = New ClassTwo()
        '构造二个线程
        Dim threadOne As Thread
        Dim threadTwo As Thread
        threadOne = New Thread(AddressOf setZeroData1.SetMethod)
        threadTwo = New Thread(AddressOf setOneData1.SetMethod)
        '启动线程
        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 Class ClassOne
        Public Sub SetMethod()
            '无限循环
            While True
                Monitor.Enter(lockData)
                Console.WriteLine("线程1进入临界区域!")
                Thread.Sleep(2000)
                Console.WriteLine("线程1退出临界区域!")
                Monitor.Exit(lockData)
            End While
        End Sub
    End Class
    Public Class ClassTwo
        Public Sub SetMethod()
            '无限循环
            While True
                Monitor.Enter(lockData)
                Console.WriteLine("线程2进入临界区域!")
                Thread.Sleep(2000)
                Console.WriteLine("线程2退出临界区域!")
                Monitor.Exit(lockData)
            End While
        End Sub
    End Class
End Module

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -