线程设置超时

            var cts = new CancellationTokenSource();

            Thread t = new Thread(new ThreadStart(() =>
            {
                Console.WriteLine(string.Format("{1}线程Id:{0}开始运行", Thread.CurrentThread.ManagedThreadId, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
                Thread.Sleep(5 * 1000);
                Console.WriteLine(string.Format("{1}线程Id:{0}运行完成", Thread.CurrentThread.ManagedThreadId, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
            }));

            cts.Token.Register(() =>
            {
                Console.WriteLine(string.Format("{1}线程Id:{0}运行被中止", t.ManagedThreadId, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
                t.Abort();
            });

            cts.CancelAfter(1 * 1000);
            t.Start();
            t.Join();
            Console.WriteLine(string.Format("{1}线程Id:{0}结束", t.ManagedThreadId, System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
时间: 2024-10-12 16:09:59

线程设置超时的相关文章

为Process.waitFor设置超时

Java中在使用Runtime.getRuntime().exec(command)调用系统命令后 一般会调用Process.waitFor()来等待命令执行结束 获取执行结果 今天一个悲剧的事实证明了 即使只是调用了很简单的脚本命令 在调用Process.waitFor()后同样可能发生无休止或者接近于无休止的阻塞 处理完故障之后痛定思痛 决定在代码中加入超时控制 但是Process.waitFor()本身并不支持超时时间设置 一个方法是改用非阻塞的Process.exitValue()方法

HttpClient库设置超时

HttpClient库API跟Lucene一样,每个版本的API都变化很大,这有点让人头疼.就好比创建一个HttpClient对象吧,每一个版本的都不一样. 3.X是正常的Java语法 HttpClient httpClient=new DefaultHttpClient(); 4.3变成了工厂模式 CloseableHttpClient httpClient = HttpClients.createDefault(); 超时设置方法 3.x HttpClient client = new Ht

HttpClient 设置超时问题

jps -lvmjstack -l pid requestConfig 设置timeout不生效 job出现卡死杜塞情况,查看线程如下"dcpUpdateOtrAccessTokenCronJob::de.hybris.platform.servicelayer.internal.jalo.ServicelayerJob" prio=5 tid=0x54068 nid=0xd334 RUNNABLE (JNI Native Code) - stats: cpu=344392 blk=-

FFmpeg命令读取RTMP流如何设置超时时间

子标题:FFmpeg命令录制RTMP流为FLV文件时如何设置超时时间 | FFmpeg命令如何解决录制产生阻塞的问题   0x001: 前言 今天在测试程序时遇到两个问题.Q1:ffmpeg录制RTMP流并保存为FLV文件时,推RTMP流的线程已经结束断掉了,而录制的线程却还一直在录.Q2:ffmpeg录制RTMP流并保存为FLV文件时,被录制的RTMP流并未推流或并无此房间频道,而录制的线程却还一直在录. 观察日志文件发现录制程序一直阻塞在某个时间点上,经查验这是因为ffmpeg在拉取RTMP

socket为send和recv设置超时时间

linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别 UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量. linux: struct timeval timeout={3,0};//3s    int ret=setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,(const char*)&timeo

java测试网络连接是否成功并设置超时时间

/** * 获取RMI接口状态 * * @return "0":服务正常,"1": 连接报错,"2":连接超时 */ @Override public String getRMIJkzt() { final ExecutorService es = Executors.newFixedThreadPool(1); Callable<String> callable = new Callable<String>() {//使

设置超时时间(项目案例仅供参考)

#设置超时时间爬取网页速度相对要快些#encoding:utf8from lxml import etree#xpathimport re#正则import time#时间import requests#传值from selenium import webdriver#通用阅览器from selenium.webdriver.support.ui import WebDriverWait#引用超时模块import random#自定义模块url = '(网址)'driver = webdrive

C# UdpClient 设置超时时间

/********************************************************************** * C# UdpClient 设置超时时间 * 说明: * 网络通信中设置超时时间是常有的时,记录UDP获取.发送超时设置方法. * * 2016-12-8 深圳 南山平山村 曾剑锋 *********************************************************************/ 一.参考文档: 1. Can

设置超时时间

// 设置超时时间 [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; manager.requestSerializer.timeoutInterval = 10.f; [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"]; http://www.itjhwd.com/ios-xuexzlzl/