这个文章是作为问题而发表。有遇到相同问题的朋友们一起看看,有没有解决办法,或者有没有办法让oracle去修复。
在CentOS6x64位平台下,运行JDK1.6版本的64位Java运行环境,当一个线程在运行过程中执行sleep(30000)之类的方法进入睡眠状态时,在这个过程中如果将系统时钟向后调慢1个小时,那么这个sleep的实际时间会变成一个小时+30秒。也就是说在这个运行环境下,sleep的判断依据不是cpu时间,而是根据系统的日期时间来作为判断准则了,很明显是一个bug,在java的bug库中也能找个这个bug,而且说是已经修复,且这个bug是jdk早起版本的。这个bug的链接为:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6311057。
在Windows平台和CentOS6x32位平台已经CentOS5.6或以前的32位和64位平台上,这个bug都不存在。目前只是测试出了CentOS6的64位平台上出现了这个问题,而且这个问题对于jdk7也是一样的存在,这个bug对于服务器级别的程序来讲,某些特殊应用的情况下是致命的问题啊。搞不到Java的开发组怎么会让一个已经修复的bug再次出现的。
有很多人也许会说,为什么要过程中修改时间呢?不修改时间不是解决这个问题的办法,根据应用的背景不同,自然是存在这个需求,关键是如何解决这个bug,而java的sleep方法又是调用的native方法。真是无从下手去修改啊。有碰到过相同问题的朋友吗?
分享到:
相关推荐
jdk1.6.0_45,Linux 64位,Ubuntu 或者 CentOS 均可,亲测,解压即可用 (解压命令 tar -xf xxxxx.tar.gz), 配置环境变量 /etc/profile (非必要操作,因为 IDEA 可以直接选择 1.6 所在目录,无需添加环境变量) ...
Centos6.5安装jdk,里面有jdk1.6、jdk1.7、jdk1.8,均64位
jdk1.6 Linux/Centos都可以用 这是从官网下载的 请放心使用
在centos,redhat等linux系统上安装的linux版本的jdk1.6
jdk1.6 linux centos可用,甲骨文已不开放下载功能,亲测可用
jdk-7u45-linux-x64.tar.gz centos 6.5 jdkjdk1.7.0_45
linux系统下1.6jdk安装,以每一步的详细命令,及环境变量的配置
linux centos 下 jdk1.8 tar.gz 离线安装包.7z
CentOS系统用64位linux版jdk-7u79-linux-x64.rpm版本,sun的官网上下载,附带系统安装文档
CentOS_x64lnmp环境下zabbix-3.2.5编译安装步骤:第一步、安装Tengine-2.2.01、系统环境CentOS 6.8_X642、需要的软件Tengine-2.2.0.tar.gz 以及需要的依赖包 gcc openssl openssl-devel pcre-devel pcre ngx...
CentOS中架设jdk1.6+mysql+glassfishV3(tomcat6).pdf
Centos7离线安装文件 jdk-8u231-linux-x64.tar.gz压缩包 免费下载,现在博客都是付费文件,搞得头大,现在免费分享
centos6.7安装jdk1.8全部详细过程,若有疑问,欢迎联系!
1.上传文件到相关文件夹 2.解压文件 tar -zxvf jdk-8u202-linux-x64.tar.gz 3.进入文件,执行安装脚本 ./setup.sh
jdk-8u221-linux-x64.tar.gz JDK 服务器包下载 jdk-8u221-linux-x64.tar.gz jdk-8u221-linux-x64.tar.gz
jdk-8u221-windows-x64.exe&jdk;-8u221-linux-x64.tar.gz,JDK最新版本
jdk安装包,Linux版.jdk-8u181-linux-x64.tar.gz
jdk-8u152-linux-x64.tar.gz 【jdk1.8,jdk8,linux 64位版】。
CentOS环境下安装JDK及一些安装问题的
Linux CentOS 7 安装 JAVA(jdk-8u181-linux-x64.tar.gz)