执行完run()方法后线程还在工作

问题描述 投票:0回答:1

我想创建一个线程来序列化我的对象。

我线程的运行方法:

    public void run() {
            try {
                FileOutputStream fos = new FileOutputStream("SaveBook.ser");
                ObjectOutputStream oos = new ObjectOutputStream(fos);
                oos.writeObject(K);
                fos.close();
                oos.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
    }

线程类也从构造函数中得到一个对象K。

当我尝试反序列化 main 方法中的对象时出现错误。所以我检查了线程是否还活着,它是。我认为反序列化不起作用,因为当我尝试反序列化时线程仍然存在。

我如何开始线程:

SaveRunnable save = new SaveRunnable(K1);
        save.start();

我如何尝试反序列化对象:

try
        {
            FileInputStream fis = new FileInputStream("SaveBook.ser");
            ObjectInputStream ois = new ObjectInputStream(fis);
            K4 = (Book) ois.readObject();
            fis.close();
            ois.close();
        }catch (Exception e)
        {
            System.out.println("Error");
        }

我的任务是在线程中进行序列化

java serialization java-threads
1个回答
0
投票

如果出现错误:请提供堆栈跟踪。否则,我们只能猜测可能是什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.