Java基础入门里面有一章叫多线程同步,里面讲的是怎么让同时进行的多个线程分步进行,既然这样为啥要叫多线程同步不叫多线程分步?多线程运行不是本来就是同步的嘛?
你一个人按步骤做某件事,叫分步进行;
多个人步调一致做某件事,叫同步进行;
多个人每个人各干各的做自己的事情,那叫异步;
这个同步指的不是这些线程的整个行为,而是指多线程对同一个数据进行操作的时候需要同步操作,这样才能保证数据的安全性,同步操作的意思是啥呢,你来然后我来然后他来,而不能大家一起来。。。
线程同步,强调的是,工作的协调性。
线程安全,强调的是,数据的一致性。
一个线程对应一组代码的执行序列,或者说,函数的调用序列。
多个线程就会有多个代码的执行序列,或者说,多个函数的调用序列。
如果多个线程需要相互协作,就需要确保每个线程的执行序列按照需求的次序来进行,有的情况是并发执行的,有的情况需要等待其他线程的执行序列完成某个操作,或者,数据变更为某个状态时,才会触发部分线程进行下一步执行序列。
线程同步,强调的就是 多个线程需要相互协作完成某个事情,这过程中,要保证多个线程相互协调的完成事情。
每个线程都是一个相对独立的执行序列,使用线程同步技术,可以让多个线程之间,相互协调的完成某个事情。