首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java线程消耗CPU的优化办法

2012-10-06 
Java线程耗费CPU的优化办法import java.io.Fileimport java.io.FileFilterimport java.util.Hashtablei

Java线程耗费CPU的优化办法

import java.io.File;import java.io.FileFilter;import java.util.Hashtable;import java.util.Map;public class PictureFileListener {/** * 问题文件列表 */private static Map<String, File> problemFileMap = new Hashtable<String, File>();/** * 监听文件路径 */File listenDirectory = new File("C:\\picture");/** * 测试 *  * @param args */public static void main(String[] args) {// 图片文件夹监听线程new Thread(new Runnable() {public void run() {// 监听路径File listenDirectory = new File("C:\\picture");if (!listenDirectory.exists() || !listenDirectory.isDirectory()) {listenDirectory.mkdirs();}// 备份路径File bakDirectory = new File("C:\\picture_bak");if (!bakDirectory.exists() || !bakDirectory.isDirectory()) {bakDirectory.mkdirs();}while (true) {if (listenDirectory != null && listenDirectory.exists() && listenDirectory.isDirectory()) {File[] pictureFiles = listenDirectory.listFiles(new FileFilter() {public boolean accept(File file) {if (!file.isFile() || file.getAbsolutePath().lastIndexOf(".jpg") == -1) {return false;}return true;}});if (pictureFiles != null) {for (File currentFile : pictureFiles) {boolean renameSuccess = currentFile.renameTo(new File(bakDirectory + File.separator + currentFile.getName()));if (!renameSuccess) {PictureFileListener.problemFileMap.put(currentFile.getAbsolutePath(), currentFile);}}}}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}).start();}}
?

?如果让线程While(true)的话,就会吃掉一个CPU(机器是双核4线程的,CPU占用25%,正好吃掉了一个CPU线程)

所以加入Thread.sleep(microsecond)来设置当前线程休眠多久,这样CPU去执行线程休眠就不会一直占用了

热点排行