线程的正确处理及关闭示例
来源:互联网 发布:opc软件 编辑:程序博客网 时间:2024/06/05 08:28
package com.shanglan.erp.ffmpeg.service;import com.shanglan.erp.ffmpeg.config.FFmpegConfig;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;/** * 任务消息输出处理器 */public class OutHandler extends Thread { /** * 控制状态 */ private volatile boolean desstatus = true; /** * 读取输出流 */ private BufferedReader br = null; /** * 输出类型 */ private String type = null; /** * 消息处理方法 */ private OutHandlerMethod ohm; public void setOhm(OutHandlerMethod ohm) { this.ohm = ohm; } public void setDesStatus(boolean desStatus) { this.desstatus = desStatus; } public OutHandler(InputStream is, String type, OutHandlerMethod ohm) { br = new BufferedReader(new InputStreamReader(is)); this.type = type; this.ohm=ohm; } /** * 重写线程销毁方法,安全的关闭线程 */ @Override public void destroy() { setDesStatus(false); } /** * 执行输出线程 */ @Override public void run() { String msg = null; try { if (FFmpegConfig.isDebug()) { System.out.println(type + "开始推流!"); while (desstatus && (msg = br.readLine()) != null) { ohm.parse(type,msg); } } else { Thread.yield(); } } catch (IOException e) { System.out.println("发生内部异常错误,自动关闭[" + this.getId() + "]线程"); destroy(); } finally { if (this.isAlive()) { destroy(); } } }}
阅读全文
0 0
- 线程的正确处理及关闭示例
- JVM关闭及线程的退出
- 正确处理 Linux 平台下的线程结束问题
- 正确处理 Linux 平台下的线程结束问题
- c++多次delete的后果及正确处理方法
- Qt学习: QCloseEvent关闭事件的使用及代码示例
- 正确处理SqlCeException的方法
- 正确处理listview的position
- 对InterruptedException的正确处理
- 正确处理listview的position
- 正确处理listview的position
- C++中线程及定时器的示例代码
- 线程池的工作原理及使用示例
- 线程的关闭
- (五)线程--定制线程及设置和获取线程的优先级别(示例下载)
- (五)线程--定制线程及设置和获取线程的优先级别(示例下载)
- (五)线程--定制线程及设置和获取线程的优先级别(示例下载)
- 多线程,线程创建及关闭句柄存在的问题,终止线程的运行的几个函数
- Spring Cloud概述
- ElasticSearch的基本用法与集群搭建
- Java中的集合框架
- post和get的区别
- 自顶向下,逐步求精的编程方法
- 线程的正确处理及关闭示例
- 一些常用DOS命令 转载整合
- spring相关定时器
- 知识积累日常_17.12.1_利用for循环 循环发送ajax
- Unity3D-UGUI Atlas packaging and dynamic use (TexturePacker)
- window下的快捷键使用指南
- linux下建立服务器与客户端
- 数据结构之二叉查找树
- Settings的显示流程