多线程监听器事件模式(一个简单的例子)

编程技术  /  houtizong 发布于 3年前   83

   

多线程的事件监听器模式

  监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到

 

     创建多线程的事件监听器模式 思路:

   1, 创建线程并启动,在创建线程的位置设置一个标记

    2,创建队列保存线程

     3,遍历队列中的线程 ,并得到标记

 

 

下面有一个简单的例子:

package com.iteye.com;/** * 创建线程统计类 *  * @author Administrator *  */public class ThreadMain extends Thread {String path;int flag = 1;int i = 0;public ThreadMain(String path) {this.path = path;}@Overridepublic void run() {flag = 2;while (true) {//System.out.println("正在统计" + path + "的第" + i + "个文件");i++;try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}flag = 3;}}}

 

package com.iteye.com;import java.util.ArrayList;public class Main {public static void main(String[] args) {ThreadMain m1 = new ThreadMain("m1");ThreadMain m2 = new ThreadMain("m2");ThreadMain m3 = new ThreadMain("m3");m1.start();m2.start();m3.start();ArrayList<ThreadMain> list = new ArrayList<ThreadMain>();       list.add(m1);       list.add(m2);       list.add(m3);              MainLisetener mlis = new MainLisetener(list);       mlis.start();}}

 

package com.iteye.com;import java.awt.List;import java.util.ArrayList;import Thread0627.threadDemo;/** * 创建线程 * @author Administrator * */public class MainLisetener extends Thread {ArrayList<ThreadMain> list;public MainLisetener(ArrayList<ThreadMain> list) {this.list = list;}@Overridepublic void run() {while(true){   for(int i = 0;i<list.size();i++){   ThreadMain mn = list.get(i);    if(mn.flag == 1){   System.out.println(Thread.currentThread().getName()+"线程还没执行");   }   if(mn.flag==2){   System.out.println(Thread.currentThread().getName()+"此线程准备执行");   }      if(mn.flag==3){   System.out.println(Thread.currentThread().getName()+"此线程已经执行完毕");   }   }   }}}

 运行结果:

  正在统计m2的第0个文件

正在统计m1的第0个文件

正在统计m3的第0个文件

正在统计m2的第1个文件

Thread-3此线程准备执行

Thread-3此线程已经执行完毕

Thread-3此线程准备执行

........

 

       

    

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客