zoukankan      html  css  js  c++  java
  • C# Monitor 使用 多线程通信

    代码
    using System;
    using System.Text;
    using System.Threading;


    namespace ReadKey
    {
    class Program3
    {
    static void Main(string[] args)
    {
    Student student
    = new Student();
    new Thread(new ThreadStart(new Thread1(student).run)).Start();//添加信息
    new Thread(new ThreadStart(new Thread2(student).run)).Start();//读取信息
    }
    }

    /// <summary>
    /// 向Student类加添加信息
    /// </summary>
    public class Thread1
    {
    private Student student;
    public Thread1(Student student)
    {
    this.student = student;
    }
    public void run()
    {
    int i = 0;
    while (true)
    {
    if (i == 0)
    student.Add(
    "jxncwzb", 23);
    else
    student.Add(
    "jxncwzb++", 22);
    i
    = (i + 1) % 2;
    }
    }
    }

    /// <summary>
    /// 读取Thread1干才添加的信息
    /// </summary>
    public class Thread2
    {
    private Student student;
    public Thread2(Student student)
    {
    this.student = student;
    }
    public void run()
    {
    while (true)
    {
    student.GetInfo();
    }
    }
    }

    public class Student
    {
    private string name;
    private int age;
    private bool isRun = false;

    public void Add(string name, int age)
    {
    Monitor.Enter(
    this);
    if (isRun)
    Monitor.Wait(
    this);
    this.name = name;
    //Thread.Sleep(10);
    this.age = age;
    this.isRun = true;
    Monitor.Pulse(
    this);
    Monitor.Exit(
    this);
    }

    public void GetInfo()
    {
    Monitor.Enter(
    this);
    if (!isRun)
    Monitor.Wait(
    this);
    Console.Write(
    "姓名:" + name);
    Console.WriteLine(
    "&年龄:" + age.ToString());
    this.isRun = false;
    Monitor.Pulse(
    this);
    Monitor.Exit(
    this);
    }

    }
    }

  • 相关阅读:
    洛谷P1199三国游戏
    Cracking the Coding Interview 6.2
    Cracking the Coding Interview 5.2
    Cracking the Coding Interview 5.7
    洗牌算法
    字符串排列组合问题
    指针作为形参
    KMP算法代码
    搜索二叉树
    面试题集锦
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1683219.html
Copyright © 2011-2022 走看看