在多线程的处理中,可以利用Runnable描述多个线程操作的资源,而Thread描述每一个线程对象,于是当多个线程访问统一资源的时候如果处理不当就会产生数据的错误操作
例如卖票程序,将创建若干个线程对象实现卖票的处理操作
上面就是每个线程数据的不同步。经过分析之后已经可以确认同步问题所产生的主要原因了那么下面就需要进行同步问题的解决,但是解决同步问题的关键是锁,指执行某一个线程执行操作的时候,其它线程外面等待;(就是一个用户访问这个资源的时候,哪怕出现了网络延迟,也要等到这个用户对这个资源操作完了,其它的用户在操作)
如果要想在程序之中实现这把锁的功能,就可以使用synchronized关键字来实现,利用此关键字可以定义同步方法或同步代码块,在同步代码块的操作里面的代码只允许一个线程执行
1、利用同步代码块处理
一般要进行同步对象处理的时候可以采用当前对象this进行同步。
原文:https://www.cnblogs.com/djlindex/p/11223584.html