Java中序列化和同步的区别是什么?

3
在Java中,序列化和同步有什么区别?我需要一个解释或教程。

7
罗列相似之处可能会使清单更加简短……它们并不是非常相关的主题。 - James Kolpack
6
除了名字的第一个字母和最后七个字母外,它们在所有方面都不同。 - Tadeusz Kopec for Ukraine
4个回答

15

同步是指多线程。同步代码块只能由一个线程执行。

序列化是将对象转换为比特流,用于存储或传输。序列化的过程按照特定规则对数据进行编码。这个比特流可以在以后进行反序列化,或者在接收它的远程系统上进行反序列化。为了使序列化工作正常,类定义必须匹配(即您需要使用相同版本的类或保证兼容的类),并且该类必须实现 Serializable 接口。

更多关于序列化

更多关于同步


4
+1,只有几点额外的评论。首先,术语“serialization”有时也用于处理请求“按顺序”而不是同时进行的上下文中。除此之外,我认为Java对象被序列化为字节流而不是位流。据我所知,输出始终是按字节对齐的。 - Wilfred Springer

1

同步是一个并发问题,例如如何协调多个线程对对象的访问。

这里箭头表示访问。

                            s
 [thread1] ---------------> y
                            n [shared object]
 [thread2] ---------------> c
                            h

序列化是将数据结构和对象转换为一系列比特的过程,您可以将其存储/传输,然后再将其转换回数据结构和对象。

这里箭头表示转换。

            deserialization
           <---------------
  [object]                  [binary]
           --------------->
            serialization

当反序列化发生在另一个地方和/或时间时,这将非常有用。


0

序列化是将一个对象转换为程序范围之外(例如字符串或XML文件)的内容。

同步是一种概念,它将不同运行的线程与彼此同步,以使它们不会同时使用共享资源,例如。

据我所知,除非您有关于如何同步需要序列化相同对象的两个线程的问题,否则这些术语几乎没有共同点。


0

同步确保只有一个线程在任一时间执行,因此不会出现死锁情况。

序列化是指存储对象的状态。例如,我们可以拿一个视频游戏来说。如果我们暂停游戏并稍后继续,它将恢复游戏。这意味着状态和级别已经存储在这里。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接