• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

清宇诺诺

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

在项目中 将秒杀的时候锁定线程并将线程操作的ID写入txt文件中 (例子)

锁定线程,进行单线程操作的时候,应使用以下操作方法锁定:
private readonly static Object thisLock = new Object();
 lock (thisLock)
{
...
}

 

//类
private void writeLog(Exception e)
        {
            FileStream fs = new FileStream("d:/ceshixiancheng.txt", FileMode.Append);
            
            //获得字节数组
            byte[] data = new UTF8Encoding().GetBytes(e.Message);
            //开始写入
            fs.Seek(0, SeekOrigin.End);
            fs.Write(data, 0, data.Length);
            var str = "\r\n";
            byte[] data1 = new UTF8Encoding().GetBytes(str);
            fs.Write(data1, 0, data1.Length);
            //清空缓冲区、关闭流
            fs.Flush();
            fs.Close();
        }

//使用时的调用:
  writeLog(new Exception("线程:" + Thread.CurrentThread.ManagedThreadId + "进来了!"));
View Code

以上为在做秒杀时 锁定线程,防止库存溢出的一个测试,测试是不是将线程锁定了,正常情况,线程锁定后,输出到txt文档的内容都是成对的,一进一出。如果不是则说明县城没有锁死.另外注意需要将txt文档的权限给了,否则会提示没有权限。

posted on 2015-11-13 17:46  清宇诺诺  阅读(208)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3