当前位置:  编程技术>.net/c#/asp.net

c#线程同步的问题与实例分析

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本节内容: 使用两个线程来分别模拟生产者和消费者。 使用 Monitor 来模拟管理员。管理员在生产过剩时告诉生产者暂停生产,消费过剩时告诉消费者暂停消费。 例子:   代码示例: using System;  using System.Collections.Generic;  ...

本节内容:
使用两个线程来分别模拟生产者和消费者。
使用 Monitor 来模拟管理员。管理员在生产过剩时告诉生产者暂停生产,消费过剩时告诉消费者暂停消费。

例子:
 

代码示例:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading; 

///线程同步模拟
namespace MultiThread 

    class Problem 
    { 
        static int[] buffers=new int[3]; 
        static int readLocation=0; 
        static int writeLocation = 0; 
        static object locker=new object(); 
        static int blankCount = 3; 
 
 
        private int Buffer  
        { 
            get  
            { 
                lock (locker) 
                { 
                    if (blankCount >= 3) 
                    { 
                        Console.WriteLine("buffers are all empty now! Consumer waits!"); 
                        Monitor.Wait(locker); 
                    } 
                    readLocation = readLocation % 3; 
                    int buffer = buffers[readLocation]; 
                    buffers[readLocation] = 0; 
                    readLocation++; 
                    blankCount++; 
                    Monitor.Pulse(locker); 
                    return buffer; 
                } 
            } 
            set 
            { 
                lock (locker) 
                { 
                    if (blankCount


    
 
 

您可能感兴趣的文章:

  • c#多线程更新窗口(winform)GUI的数据
  • c# winform 关闭窗体时同时结束线程实现思路
  • c#多线程读取注册表 c#多线程的小例子
  • C#实现终止正在执行的线程
  • c#后台线程访问前台控件并显示信息示例
  • C#线程间不能调用剪切板的解决方法
  • C#实现线程池的简单示例
  • c# 多线程操作progressBar进度条控件的例子
  • C#子线程更新UI控件的方法实例总结
  • C#实现窗体与子线程的交互的方法
  • C#通过接口与线程通信(捕获线程状态)示例代码
  • C#利用子线程刷新主线程分享教程
  • 描述C#多线程中lock关键字的使用分析
  • C#中的多线程多参数传递详解
  • C# 多线程更新进度条progressBar控件的代码一例
  • C# 多线程复制文件并显示进度条的代码
  • c#(asp.net)线程配置总结
  • c#多线程中Lock()关键字的用法小结
  • c#钩子本线程内消息拦截的方法
  • c#线程间传递参数详解
  • c# asp.net 多线程实例(经典)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求c 实现线程池的一个实例
  • 急需关于linux多线程的代码工程实例-高手请进啊
  • JAVA实现多线程的两种方法实例分享
  • haskell实现多线程服务器实例代码
  • python线程池的实现实例
  • Android后台线程和UI线程通讯实例
  • 关于一个线程实例的执行结果问题
  • 线程和进程有什么具体的区别?谁能解释一下,用实例亦可
  • linux c多线程编程实例代码
  • 在Android线程池里运行代码任务实例
  • Shell多线程操作及线程数控制实例
  • JAVA线程同步实例教程
  • 线程按指定顺序输出字符到数组的实例代码
  • Android中创建多线程管理器实例
  • 一个很简单的多线程实例,困惑中
  • C#简单多线程同步和优先权用法实例
  • Android提高之SurfaceView与多线程的混搭实例
  • python中的多线程实例教程
  • java 使用线程做的一个简单的ATM存取款实例代码
  • Python实现多线程下载文件的代码实例
  • Java中多线程相关类Thread介绍
  • 一个进程创建了两个线程,如何使得当任何一个线程(比如线程a)结束时,同时也结束线程b,也就是使两个线程一起死掉,怎么办呢?
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • java 线程,对当前线程(非主线程)调用sleep,为什么主线程(窗口)也没反应了
  • c++的boost库多线程(Thread)编程(线程操作,互斥体mutex,条件变量)详解
  • 如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • 关于线程的问题,什么样的线程不是active线程?
  • 请问Linux核心支持多线程吗?开发库有线程库吗?线程好用吗?(稳定?)
  • 请问,在一个进程中创建多线程时如何能避免不同的线程获得同一个线程标识




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3