深化浅出Java多线程(2)-Swing中的EDT(事件分发线程)[Java编程]
本文“深化浅出Java多线程(2)-Swing中的EDT(事件分发线程)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文主要办理的问题是:
若何使其Swing程序只能运行一个实例?
抛开Swing,我们的程序是通过java 号令行启动一个进程来履行的,该问题 也就是说要保证这个进程的唯一性,当然假如可以拜候系统的接口,得到进程的 信息来判断能否已有进程正在运行,不就办理了吗?但是若何拜候系统的接口呢 ?若何要保证在差别的平台上都是OK的呢?我的思绪是用文件锁,当然我相信肯 定有更好的办法,呵呵,但愿读者可以指出.
文件锁是JDK1.4 NIO提出的,可以在读取一个文件时,得到文件锁,这个锁 应当是系统保护的,JVM应当是调用的系统文件锁机制,例子以下:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
/**
*
* @author vma
*/
public class temp1 {
public static void main(String args[]) throws FileNotFoundException, InterruptedException, IOException{
RandomAccessFile r = new RandomAccessFile ("d://testData.java","rw");
FileChannel temp = r.getChannel();
FileLock fl = temp.lock();
System.out.println(fl.isValid());
Thread.sleep(100000);
temp.close();
}
现代码得到锁后:我们试图编辑这个文件是就会:
以上是“深化浅出Java多线程(2)-Swing中的EDT(事件分发线程)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |