zoukankan      html  css  js  c++  java
  • 多线程之搬运货物1:不分堆搬

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

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Program p = new Program();
                p.Move();
                Console.ReadLine();
            }

            List<string> productList = new List<string>() { "AAAA""BBBB""CCCC""DDDD""EEEE" };//货物
            
            private void Move()
            {
                for(int i = 1; i<= 10;i++)
                {
                    productList.Add(i.ToString());
                }

                ThreadPool.SetMaxThreads(1010);
                lock (this)
                {
                    while (productList.Count > 0)
                    {
                        lock (this)
                        {
                            ThreadPool.QueueUserWorkItem(new WaitCallback(RealMove),productList[0]);
                            productList.RemoveAt(0);
                        }
                    }
                }
            }

            private void RealMove(object product)
            {
                System.Threading.Thread.Sleep(1000);
                Console.WriteLine("货物" + product.ToString() + "已经被成功送达目的地!" + System.DateTime.Now.ToString());//YYYY-MM-DD HH-MM-mm
            }
        }
    }
  • 相关阅读:
    vue-route+webpack部署单页路由项目,访问刷新出现404问题
    linux下安装大于2T硬盘,并分区替换现有mysql数据目录挂载点实现扩容
    linux下将mbr分区转换为gpt分区
    [go]接口型函数分析
    Type-C协议简介(CC检测原理)
    RocketMQ 重试机制
    RocketMQ与Kafka对比-评价版
    分布式开放消息系统(RocketMQ)的原理与实践
    mysql8.0的RPM方式安装
    nacos集群配置笔记
  • 原文地址:https://www.cnblogs.com/pnljs/p/3523691.html
Copyright © 2011-2022 走看看