• C# 多线程操作队列


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Net;
    using System.Runtime.InteropServices;
    using System.Net.Sockets;
    using System.IO;
    using System.Collections;

    namespace ConsoleApplication1
    {

    public class prodert
    {
    private string urls;
    private string name;
    public string Name
    {
    set { this.name = value; }
    get { return this.name; }
    }

    public string Urls
    {
    set { this.urls = value; }
    get { return this.urls; }
    }
    }

    class IPSearch
    {
    static Queue<prodert> q = new Queue<prodert>();
    public static object a = new object();
    static void Main(string[] args)
    {

    Dictionary<string, string> dic = new Dictionary<string, string>();

    for (int i = 0; i < 100; i++)
    {
    prodert p = new prodert();
    p.Urls = "http://www.hao123.com" + i.ToString();
    p.Name = "hao123com" + i.ToString();
    q.Enqueue(p);
    }

    Thread t1 = new Thread(new ThreadStart(getQueue));
    Thread t2 = new Thread(new ThreadStart(getQueue));
    Thread t3 = new Thread(new ThreadStart(getQueue));
    t1.Name = "t1";
    t1.Start();
    t2.Name = "t2";
    t2.Start();
    t3.Name = "t3";
    t3.Start();
    Console.ReadKey();
    }
    private static void getQueue()
    {
    for (int i = 0; i < 10; i++)
    {
    aa();
    }
    }
    private static void aa()
    {
    lock (a)
    {
    if (q.Count > 0)
    {
    prodert p1 = q.Dequeue();
    Thread.Sleep(100);
    Console.WriteLine(p1.Name + p1.Urls+"------"+Thread.CurrentThread.Name);

    }
    }
    }
    }
    }

  • 相关阅读:
    Solaris 10学习笔记初学
    EBS R12中文升级补丁
    EXPDP,今天犯了个愚蠢的错误
    LOGSTDBY status: ORA01418,Logical standby問題可真多
    ORA04045,Standby停止Apple log处理一例
    无法relay信件处理一例
    cordova启动页面和图标的设置
    CSS布局探密02
    CSS布局探密01
    CSS布局探密03
  • 原文地址:https://www.cnblogs.com/armyfai/p/3761553.html
Copyright © 2020-2023  润新知