序列化与反序列化,使用场景,在spark中executor执行task时的
task类
public class Task implements Runnable, Serializable { public void run() { System.out.println(Thread.currentThread().getName() + "_" + new Date()); } }
public class File2Object { public static void main(String[] args) throws Exception { ObjectInputStream oi = new ObjectInputStream(new FileInputStream("d:\test\task")); Task task = (Task)oi.readObject(); ExecutorService es = Executors.newFixedThreadPool(5); es.execute(task); Thread.sleep(2000); es.shutdown(); } }
public class Object2File { public static void main(String[] args) throws Exception { Task task = new Task(); ObjectOutputStream objectOutputStream= new ObjectOutputStream(new FileOutputStream("d:\test\task")); objectOutputStream.writeObject(task); objectOutputStream.close(); } }
task被写到文件经过网络传输到达另一个节点然后执行,(移动计算)