文档章节

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

k
 kaixinguo314
发布于 07/20 10:24
字数 256
阅读 2
收藏 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
博文 128
码字总数 81291
作品 0
杭州
程序员
多线程学习笔记(一)

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

scymore
2016/08/26
22
2
39. Python 多线程实例 多线程锁

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

ln286577399
2017/12/13
0
0
ios多线程之NSThread

ios多线程之NSThread 什么是线程: 一个进程想要执行任务,必须至少得有一个线程,但是只拥有一个主线程,线程是进程的基本执行单位,一个进程的所有任务必须在线程中执行。 线程的分类: 串...

zhenghaoLi
2016/09/03
9
0
多线程

1、基本概念 什么是进程: 进程是在系统中运行的一个程序,每个进程之间是独立的,每个进程均运⾏在其专有且受保护的内存空间内。 什么是线程: ⼀个进程想要执⾏任务,必须得有线程(⾄少一个线程...

魏萌萌丶
2016/09/08
50
0
基础补充-多线程-理论篇

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

skanda
2016/11/13
8
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取整除法

python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3#7 = 3*2 +1n2=-6.1//3#-7 = 3*(-3)+2'{},{}'.format(n1,n2) 从运行结果可以...

colinux
27分钟前
3
0
阶段总结——用虚拟机搭建一个高可用负载均衡集群架构

[toc] linux基本知识已经介绍完,现有一个业务需要操作,通过对这个项目的操作,可以复习、总结、巩固之前的知识点; ** 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

feng-01
31分钟前
0
0
mysql 设置utf8字符集 (CentOS)

1.查看数据库及mysql应用目前使用的编码方式 (1)链接mysql 客户端 (2)执行:status 结果: 2.修改mysql 应用的字符编码(server characterset ) (1)打开配置文件:vim /etc/mysql/my...

qimh
31分钟前
0
0
windows无法格式化u盘解决方法

1。点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符) 这个格式化会很慢 请耐心等待

大灰狼wow
42分钟前
0
0
MySql 8.0连接失败

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_s...

放飞E梦想O
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部