new Date().getTime()出现线程堵塞的问题概率比较低,但是一旦出现,那么性能也将下降很多,下面代码可以测试这个问题,创建10个线程,不断执行。
其堵塞原因在于这个方法引用了getJulianCalendar(),
synchronized private static final BaseCalendar getJulianCalendar() {
if (jcal == null) {
jcal = (BaseCalendar) CalendarSystem.forName("julian");
}
return jcal;
}
测试代码:
public class DuMain {
public static void main(String[] args) {
long time = System.currentTimeMillis();
test();
long end = System.currentTimeMillis();
System.out.println(end - time);
//................
for(int i=0;i<10;i++){
new Thread(){
@Override
public void run() {
for(int i=0;i<1000000000;i++){
test();
// System.out.println(i);
}
}
}.start();
}
for(int i=0;i<1000000000;i++){
time = System.currentTimeMillis();
test();
end = System.currentTimeMillis();
System.out.println(""+i+"--"+(end - time));
// System.out.println(i);
}
}
public static boolean test() {
Date begin = new Date();
int ONE_SECOND = 2;
boolean result = false;
while (true) {
if (new Date().getTime() - begin.getTime() >= ONE_SECOND) {
result = true;
break;
}
}
return result;
}
}
result:
....
11423--2
11424--274
11425--2
11426--3
....
可以看到运行到一定次数的时候就会被阻塞一下
分享到:
相关推荐
NULL 博文链接:https://ollevere.iteye.com/blog/1320854
var nMS =EndTime.getTime() - NowTime.getTime();//getTime()方法将日期转为毫秒数;1秒=1000毫秒 var senconds=1000; var minutes=senconds*60; var hours=minutes*60; var days=hours*24; var nD =Math.floor(nMS...
if (date2.getTime()<date1.getTime()){ i= 1; }else if (date2.getTime()==date1.getTime()){ i= 2; }else if (date2.getTime()>date1.getTime()){ //正常情况下的逻辑操作. i= 3; } } catch (Parse...
扭曲时间:控制时间的进度 :play_button: | | | 简单的Javascript库,提供与Date.getTime()等效的变量,并且具有可变的进度速度。 它有一个钩子来接收时间戳和估计的延迟,用于与后端服务器的时间保持同步。yarn add...
var yd_time = yd_date.getTime(); var one_second = 1000; var one_minute = one_second * 60; var one_hour = one_minute * 60; var one_day = one_hour * 24; getRemainTime(); function getRemainTime...
android gps开发获取的时间“location.getTime()”,转换为本地北京时间的代码,经测试绝对好用。
return time.getTime() Date.now(); } }, pickerOptions1: { disabledDate: time => { // 使用2018年的毫秒时间戳判断 return time.getTime() Date.now(); } } } } 在发送请求之前进行日期的判断,
date.setTime(date.getTime() + (x * 60 * 1000)); $.cookie('example', 'foo', { expires: date }); 方法二: [removed] var expiresDate= new Date(); expiresDate.setTime(expire.getTime() + (? * 60 * 1000))...
2.Date.now() 3.process.uptime() 4.process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统...
JavaScript日期问题 ...if (date3.getTime() > date1.getTime () & & date3.getTime () < date2.getTime ()) { console.log( ' Given date is in between ' ) ; } else { console.log( ' Given date is no
if(holidayArray[i].getTime()>orgTime && holidayArray[i].getTime()<to.getTime()){ if(holidayArray[i].getDay()>0 && holidayArray[i].getDay()){ workdays--; } } } } return workdays; } [removed]
javascript Date.getTime()方法按照通用时间对应的时间为指定日期返回数值。由getTime方法返回的值是毫秒自1970年1月1日00:00:00的数。 您可以使用此方法来帮助指定日期和时间到另一个Date对象。 语法 Date.getTime...
<div><h1 class="title">喜迎 2023</h1></div> <div><span class="title2">距离元旦... var now_time=Math.round(new Date().getTime()/1000); var lefttime= parseInt(end_time-now_time); console.log(lefttime
以上这篇解决苹果ios用js的Date()出现NaN的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:关于js new Date() 出现NaN 的分析
System.out.print("Format To times:"+date.getTime()); 运行结果: Format To times:445555000 4、注意 定义SimpleDateFormat时new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );里面字符串头尾不能有空格...
Delphi getTime 获取当前日期时间,用的是DateTimeToStr,运行本窗口后,自动获取当前电脑上的时间,显示在窗体指定的Lable标签中,这是核心的源代码: procedure TForm1.Timer1Timer(Sender: TObject); begin ...
sd = new java.sql.Date(ud.getTime());2、如果要插入到数据库并且相应的字段为Date类型那么可以用PreparedStatement.setDate(int ,java.sql.Date)方法其中的java.sql.Date可以用上面的方法得到也可以用数据库提供...
// Date.formats.date='yyyy-mm-dd' // 2014-10-02 d.format('date'); // Date.formats.long='yyyy-mm-dd\u00a0hh:MM:ss' // 2014-10-02 10:00:00 d.format('long'); // you can custom by ...
java(stamp,date,”java.util.Date.getTime”) s(stamp/1000,ss.times) //毫秒级变成秒级 ss(ss.times+”yuqios”,ss.timemd5) call(ss.timemd5, “mjava”, “md5.md5st”,ss.timemd5) end fn 源码纯净无后,放心...
const date1Time = sdate1.getTime(); // 获取时间戳 const date2Time = edate2.getTime(); const difference = Math.abs(date1Time - date2Time); // 获取时间差 var days = Math.round(difference / ONE_DAY)...