多线程写文件问题

wujun_dry wujun_dry 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO;

namespace testThreadLock
{
public partial class Form1 : Form
{
int threadNum = 10;
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= threadNum; i++)
{
Thread t = new Thread(new ThreadStart(run));
t.Name = i.ToString();
t.Start();
}

}

private void run()
{
string filePath = @"D:\PHOTO\info.txt";
StreamWriter sw = File.CreateText(filePath);
sw.WriteLine("test");
sw.Close();
}
}
}

我想让10个线程同时同时往里写,应该会肯定用到锁吧,但是不知道怎么锁啊。怎么实现呢?

如果加了锁,是不是会在这个info.txt里出现十个test呢,

如果给
string filePath = @"D:\PHOTO\info.txt";
StreamWriter sw = File.CreateText(filePath);
sw.WriteLine("test");
sw.Close();
加了锁,如果我在这个run方法里还有其他的操作,会不会有影响呢?

菜鸟请教问题。谢谢各位高手!
...全文

相关推荐

读者写者问题实现

用C#语言实现读者写者问题 进程间的同步

shiqingpei

读者/写者问题实验报告

读者/写者问题实验报告 ――多线程的实现

csyaoyao

操作系统设计读者写者问题

用VC++实现操作系统中读者写者问题,实现读写互斥,读读允许和写写互斥。

whut_xq0927

读者写者问题

操作系统读者写者问题,内附有详细代码,看了就知道了

l446585700

读者写者问题操作系统课程设计报告

在Windows 2000/XP环境下,使用多线程和信号量机制实现经典的读者写者问题,每个线程代表一个读者或一个写者。每个线程按相应测试数据文件的要求,进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。 读者-写者问题的读写操作限制: (1)写-写互斥,即不能有两个写者同时进行写操作 (2)读-写互斥,即不能同时有一个读者在读,同时却有一个写者在写 (3)读-读允许,即可以有二个以上的读者同时读 读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。 写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。 运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。 3 测试数据文件格式 测试数据文件包括n 行测试数据,分别描述创建的n 个线程是读者还是写者,以及读写操作的开始时间和持续时间。每行测试数据包括四个字段,各字段间用空格分隔。第一字段为一个正整数,表示线程序号。第二字段表示相应线程角色,R 表示读者是,W 表示写者。第三字段为一个正数,表示读写操作的开始时间。线程创建后,延时相应时间(单位为秒)后发出对共享资源的读写申请。第四字段为一个正数,表示读写操作的持续时间。当线程读写申请成功后,开始对共享资源的读写操作,该操作持续相应时间后结束,并释放共享资源。下面是一个测试数据文件的例子: 1 R 3 5 2 W 4 5 3 R 5 2 4 R 6 5 5 W 5.1 3

meteor00
评论 14
收藏 已收藏
分享
返回顶部
wujun_dry
C# 111,129 成员 642,538 内容