如何在C#中使用锁和计时器实现线程同步,以确保共享资源的安全访问?请提供代码示例。
时间: 2024-10-30 22:26:30 浏览: 42
为了有效地同步线程并保护共享资源的安全访问,可以使用锁(lock)来创建临界区,以及计时器(如System.Threading.Timer)来触发定时任务。这些技术是解决多线程并发问题的关键。锁确保了在同一时刻只有一个线程可以访问特定代码块,而计时器则可以在预定时间触发事件,这在需要定期执行任务时非常有用。下面是一个简单的代码示例,展示了如何在C#中实现这些技术:
参考资源链接:[C#多线程深度解析:Threading in C# 中文译版](https://wenku.csdn.net/doc/648d6f469aecc961cb046c69?spm=1055.2569.3001.10343)
```csharp
using System;
using System.Threading;
class Program
{
static object lockObject = new object();
static int sharedResource = 0;
static void Main()
{
// 启动计时器
Timer timer = new Timer(TimerCallback, null, 0, 1000);
// 创建并启动线程
Thread t1 = new Thread(IncrementResource);
t1.Start();
Thread t2 = new Thread(DecrementResource);
t2.Start();
Console.WriteLine(
参考资源链接:[C#多线程深度解析:Threading in C# 中文译版](https://wenku.csdn.net/doc/648d6f469aecc961cb046c69?spm=1055.2569.3001.10343)
阅读全文