zoukankan      html  css  js  c++  java
  • 多任务多线程(队列)示例代码

    前几天需要使用一个多线程来完成工作,情况如下:

    有一个列表,有N个任务,现在需要M个线程去实现它,不懂代码,没有办法完成,找同事完成了。

    执行的过程如下

    1、生成N个任务的队列(此队列为基类List,被封装过,提供一个GetNext方法)

    2、生成M个线程的数组(线程是经过封装的)

    3、启动各个线程,

    4、某一个线程完成,通知主线程完成了,并去调用队列的GetNext方法,获取下一个任务,直到所有的完成。GetNext方法有Lock,防止任务分配重复。

    5、运行的过程当中,可以调用队列的Add方法,动态增加任务。目前代码中没有写减少任务,加上去是非常简单的。

    6、目前没有做的,就是动态增减线程的数量,但也不难,比如给封装过的线程增加Remove方法,在线程内部从最后一个线程往前遍历,需要停止几个就Stop几个。

    7、此方法比较适合队列管理的情况,比如像下载软件flashget,迅雷等

    8、顺便BS一下很多写blog的人,受中国应试教育的影响,很多是把理论搬上来,不知道想表达什么,cnblogs是该需要分成几块了,资料,心得,论坛,该去哪里去哪里,不免一些人说首页发的文章,自己想看的太少了。

    /Files/szyicol/ThreadDemo.rar

  • 相关阅读:
    Android ArrayAdapter使用
    Android 更改字体
    C# CRC16校验码 1.0
    获取当前主题颜色 Flutter
    C# 每个字节接受 处理串口数据 的方法
    C# CRC
    char* 与 string 互转
    typeof 子类获取父类
    flutter Row 垂直或水平放置多个widget
    flutter 容器 几种写法
  • 原文地址:https://www.cnblogs.com/szyicol/p/1525485.html
Copyright © 2011-2022 走看看