java 添加等待时间_Java中线程等待特定时间的最有效方法 - java

我知道这个问题here,但是我有一个稍微不同的问题。如果我希望自己通过各种Thread方法(而不是通过实用程序类或Quartz)手动编码某个线程在特定时间的运行,那么最有效(就开销而言)进行编码。

我考虑过:

boolean wasInterrupted = false;

while (System.currentTimeMillis() < executionTimeInMillis) {

try {

Thread.sleep(X);

} catch (InterruptedException ie) {

wasInterrupted = true;

}

}

if (!wasInterrupted) {

doMyThing();

}

有没有更好的办法?这是原始和天真吗?

参考方案

您有3种基本可能性:

Thread.sleep(...):取决于系统计时器和调度程序的精度和准确性,使当前正在执行的线程进入休眠状态(停止执行)达指定的毫秒数和指定的纳秒数。该线程不会失去任何监视器的所有权;

Thread.yield():导致当前正在执行的线程对象暂时暂停并允许其他线程执行;

监视:您在要锁定的对象上调用wait,然后通过在同一对象上调用notify来释放锁定。有关更多信息,请参见javadoc:http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/lang/Object.html#wait()

最好的方法是使用监视器,因为您知道何时获得锁定以及何时释放锁定。而且,它允许让其他线程执行。如果您想了解为什么必须避免使用睡眠和屈服方法,请阅读http://www.javamex.com/tutorials/threads/yield.shtml。

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP微信app接口退款,10.PHP接入微信退款接口

推荐文章摘要环境搭建开启配置服务器环境核心类验证回复拓展推荐文章今天网上和朋友圈炸开了锅&#xff0c;原因是微信小程序正式上线了。吃瓜群众表示不理解&#xff0c;于是去搜了下。不搜不要紧&#xff0c;搜了吓一跳&#xff0c;原来微信小程序早在2016年9月份就已经进行了…

java线程读取流的时候卡死,java – 线程中断没有结束阻塞调用输入流读取

我正在使用RXTX从串口读取数据.读取是在以下列方式生成的线程内完成的&#xff1a;CommPortIdentifier portIdentifier CommPortIdentifier.getPortIdentifier(port);CommPort comm portIdentifier.open("Whatever", 2000);SerialPort serial (SerialPort)comm;..…

php poi,GitHub - satthi/poi-php: poi-php

poi-phpvarsion 0.1(2013/10/21)このプラグインはJavaのpoiをPHPから叩いてエクセルを入出力するプラグインです。必須要件jdk1.7.0_40poi-3.9opencsv-2.3使い方①poi-phpを任意の場所に設置②PHPを記述//デフォルト読み込みrequire_once(poi-php.phpのディレクトリパス);$this…

php hmac sha256签名,HMAC-SHA256签名错误?

#2.连接商户key&#xff1a;act_name3333321ss&client_ip118.89.65.223&mch_billnoa0000000000000000001&mch_id1529243621&nonce_str905Qh0J59d69JjDtD7QkyRAm576kh5hU&re_openidoiW0l03-60UfHJfo0olLt3wOLb0E&remark111&remark222dddd&send_…

php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录?

在实体关系语言中,这称为多对多关系.一个产品可以有多个类别,一个类别可以有多个产品.要在关系数据库中执行此操作,您需要三个表.product: product_id, name, description, etccategory: category_id, catname, catdescription, etc然后用这个所谓的联接表建立产品和类别之间的…

php redis 传递闭包,通过缓存构建高性能 Laravel 应用

通过缓存构建高性能 Laravel 应用由 学院君 创建于3年前, 最后更新于 11个月前版本号 #220678 views9 likes1 collects配置Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 开箱支持主流…

imclearboder matlab,Lucas

Lucas-Kanade跟踪算法是视觉跟踪中一个很经典的基于点的逐帧跟踪算法。起初这个算法是用来求解stero matching1的&#xff0c;后来经过Carlo Tomasi2和Jianbo Shi3等人的发展渐趋成熟。Jianbo Shi提出了一种筛选跟踪点特征的方法&#xff0c;使得特征的跟踪更可靠。Jean-Yves B…

php判断url参数为空,PHP检查url链接是否已经有参数的简单示例

这篇文章主要为大家详细介绍了PHP检查url链接是否已经有参数的简单示例&#xff0c;具有一定的参考价值&#xff0c;可以用来参考一下。感兴趣的小伙伴&#xff0c;下面一起跟随512笔记的小编小韵来看看吧&#xff01;比如分页&#xff0c;因为有些链接已经有参数了&#xff0c…

java 读取 邮件 附件,JavaMail 中对附件下载的处理

在项目中使用 JavaMail 作为邮件核心库,但是一直遇到一个比较头疼的问题,当邮件中存在附件时,此封邮件加载速度很慢,最高时之后 80k/s.通过 log 打印看出,当获取附件时,获取一段之后等待一段时间在获取另一端.导致 io 开销过大,等待网络读取时间过长.相关日志如下:O24 FETCH 27…

matlab求勒让德多项式零点,有没有勒让德多项式导数 零点程序

求N1次勒让德多项式的m(m0,1,...)阶导数零点Matlab程序子程序&#xff1a;function xjp(N,alpha,beta)n1:N;a(1)(alphabeta2)/2;b(1)(beta-alpha)/2;a([2:N1])(2*nalphabeta1).*(2*nalphabeta2)./(2*(n1).*(nalphabeta1));b([2:N1])(alpha*alpha-beta*beta)*(2*nalphabeta1)./(…

js_long.php,protobuf.js 与 Long.js的使用详解

这次给大家带来protobuf.js 与 Long.js的使用详解&#xff0c;是急用protobuf.js 与 Long.js的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。protobuf.js的结构和webpack的加载之后的结构很相似。这样的模块化组合是个不错的结构方式。1个是适应了不同…

微分进化算法解决函数优化问题的matlab代码,Matlab微分进化算法及优化函数测试...

微分进化(Difference Evolution&#xff0c;DE)算法是一种优化算法&#xff0c;据称其比GA(遗传算法)等更为优秀。借鉴网上实现的DE算法&#xff0c;用Matlab实现了对若干函数优化问题的解法&#xff0c;代码如下&#xff1a;function [] de_testclear all;close all;clc;%解&…

Oracle中获取文件中的数据,操作oracle中的数据文件

收藏于http://dev.yesky.com/296/8090796.shtmlOracle数据库中管理表空间和数据文件数据库的三大组成部分:数据文件&#xff0c;控制文件&#xff0c;Redo日志。表空间分为系统表空间和非系统表空间。SYSTEM表空间是最基本的&#xff0c;必须的&#xff0c;Oracle建议你为用户数…

oracle 存储过程设置回滚点,(转)oracle 存储过程事宜使用断点回滚 -savepoint

学习存储过程中使用断点回滚事务时&#xff0c;发现目前网络上存在一个问题&#xff0c;那就是使用断点回滚后&#xff0c;都忘记了一个很重要的事情&#xff0c;提交事务。虽然使用了断点回滚&#xff0c;但是断点回滚不像rollBack或commit一样结束当前事务&#xff0c;而使用…

php tp5清空数据表并主键,tp5数据库——更新数据

更新数据更新数据表中的数据Db::table(think_user)->where(id, 1)->update([name > thinkphp]);如果数据中包含主键&#xff0c;可以直接使用&#xff1a;Db::table(think_user)->update([name > thinkphp,id>1]);update 方法返回影响数据的条数&#xff0c;…

oracle几个网络,ORACLE网络的几个重点概念

数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量ORACLE_SID、数据库服务名 (SERVICE_NAME)、数据库域名(DB_DOMAIN)以及全局数据库名(GLOBAL_DB_NAME)是几个使用Oracle数据库容易混 淆的概念。1、数据库名与实例名数据库名(DB_NAME)&#xff1a;是区分数据的…

oracle每季度补丁,Oracle 2020 年第四季度补丁发布

半个月前&#xff0c;也就是 10 月 20 日&#xff0c; Oracle 发布了今年最后一次补丁更新&#xff0c;那么很多人都想打最新的 PSU&#xff0c;理由是有被扫到各种漏洞&#xff0c;有的扫描工具着实太坑&#xff0c;这里就不用说了&#xff0c;前几天看到盖总发布的文章2020年…

php flash上传进度条,PHP_PHP+FLASH实现上传文件进度条相关文件 下载,PHP之所以很难实现上传进度条 - phpStudy...

PHPFLASH实现上传文件进度条相关文件 下载PHP之所以很难实现上传进度条是因为在我们上传文件到服务器的时候&#xff0c;要等到文件全部送到服务器之后&#xff0c;才执行相应的php文件。在这之前&#xff0c;文件数据保存在一个临时文件里面&#xff0c;而php无法获得这个文件…

oracle截取时间函数6,SQL 取日期部分函数

convert(varchar(10),getdate(),120)这个函数就可以得到日期部分了&#xff0c;我觉得还是比较方便的&#xff0c;我觉得SQL在日期方面&#xff0c;没有ORACLE函数坐的好。。Sql Server中的日期与时间函数1. 当前系统日期、时间select getdate()2. dateadd 在向指定日期加上一…

oracle 找不到程序,Oracle 找不到监听程序

Oracle服务器文件 app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.oraSID_LIST_LISTENER (SID_LIST (SID_DESC (SID_NAME CLRExtProc)(ORACLE_HOME D:\app\Administrator\product\11.2.0\dbhome_1)(PROGRAM extproc)(ENVS "EXTPROC_DLLSONLY:D:\…