文档章节

多线程Thread-多线程顺序执行

k
 kaixinguo314
发布于 2018/07/20 10:24
字数 256
阅读 6
收藏 0

需求:现在有两个任务,任务1和任务2,任务1中有多个线程,并且任务2必须等任务1完成后才能执行。

namespace TThread
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = 100;
            TheadInfo[] threadInfos = new TheadInfo[num];
            for(int i = 0; i< num; i++)
            {
                TheadInfo theadInfo = new TheadInfo();
                theadInfo.ThreadName = "Thread" + i;
                theadInfo.ThreadStatus = '0';
                threadInfos[i] = theadInfo;
            }
            for(int i = 0; i < num; i++)
            {
                TMyThread myThread = new TMyThread();
                myThread.theadInfo = threadInfos[i];
                Thread thd = new Thread(myThread.DoWork);
                thd.Start();
            }
            bool hasFinished = true;
            //增加死循环,判断线程是否全部结束
            while (true)
            {
                hasFinished = true;
                Thread.Sleep(1000);  //暂停1s钟,让配对的线程有匹配的机会
                foreach (TheadInfo item in threadInfos)
                {
                    Console.WriteLine(item.ThreadName+"  "+item.ThreadStatus);
                    if (item.ThreadStatus == '0')
                    {
                        hasFinished = false;
                        break;
                    }
                }
                if (hasFinished)
                    break;
            }
            Console.WriteLine("All Threads Finished");
            Console.ReadKey();
        }
    }

    class TheadInfo
    {
        public string ThreadName;
        public char ThreadStatus;
    }
    class TMyThread
    {
        public TheadInfo theadInfo;     
        public void DoWork()
        {
            Console.WriteLine("线程 "+ theadInfo.ThreadName + "开始");
            Thread.Sleep(500);
            theadInfo.ThreadStatus = '1';
            Console.WriteLine("线程 " + theadInfo.ThreadName + "结束");
        }
    }
}

 

© 著作权归作者所有

共有 人打赏支持
k
粉丝 0
博文 154
码字总数 88772
作品 0
杭州
程序员
私信 提问
多线程学习笔记(一)

一 . 使用多线程的优点 可以在同一时间内运行更多不同种类的任务 注: 多线程是异步的,即代码顺序不一定是执行顺序,线程被调用的时机是随机的 二 . 实现多线程的方法 实现多线程的方法主要有两...

scymore
2016/08/26
22
2
Java 多线程学习(1)——实现多线程的两种方式Thread/Runnable

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/huqigang,内容如有错误,欢迎留言指出,谢谢! https://blog.csdn.net/huqigang/article/details/7...

胡了了
2018/03/07
0
0
39. Python 多线程实例 多线程锁

1.多线程 多线程和多进程的表现形式差不多 IO密集型用多线程 线程是应用程序中的最小单元 多线程的实现有两种方式: 方法一: 将要执行的方法作为参数传给Thread的构造方法(和多进程类似) ...

ln286577399
2017/12/13
0
0
基础补充-多线程-理论篇

多线程 理论篇 多线程则扩展了多进程的概念,使得同一个进行可以同时并发处理多个任务。线程(Thread)也被称作轻量级进程(Ligheweight Process),线程是进程的执行单元。就象进程在操作系...

skanda
2016/11/13
8
0
多线程的概念

作者: songlixing 一、程序与进程 1、程序:一段静态的代码。 2、进程:程序的一次动态执行过程,它对应从代码加载、执行到执行完毕的一个完整过程。 3、进程也称任务,支持多个进程同时执行...

虫虫
2011/12/02
700
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
5
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
3
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部