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

  • 相关阅读:
    Yarn下分片和分块源代码分析
    Yarn下Map数控制
    hadoop中使用的Unsafe.java
    hbase的coprocessor使用(转)
    eclipse插件
    短线及时发现个股机会的七大招数
    hadoop分类输出
    安装ubuntu-tweak
    rabbitmq安装使用
    “-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数(转)
  • 原文地址:https://www.cnblogs.com/szyicol/p/1525485.html
Copyright © 2011-2022 走看看