JAVA-初步认识-第十三章-多线程(同步代码块)

一.

怎么解决程序的安全性问题。

就相当于不给其他线程机会,自己独占。

对于多条语句的封装通常用什么封装?花括号,也就是代码块。

我们现在需要这个代码块具备一定的功能,多个线程只能每次有一个线程进来操作。这个我们也可以用一个关键字来标识。

synchronized是同步的意思,

写同步代码块的时候,必须要明确是对那些代码进行同步,如果不清楚的话,就不要写同步代码块。

这里面有个对象,这个对象代表什么呢?对象相当于一个标记,标志。

那synchronized里面放什么对象,我们这里也没有对象。干脆造一个对象,

将造好的对象放置到synchronized中,为了同步造个对象有点多余。那怎么办?

我们找一个现成的对象就好了,干嘛造自然描述对象。

现在就解决了安全问题,编译运行当前程序。

但是整个结果来看,都是一个线程在运作。安全隐患是解决了,没有负数的票号出现了。但是咱程序中写的是四个线程。

再次编译运行,出现了多个

从结果来看,运行了四个线程,1和2线程有资格,没抢到执行权。

接下来的问题就是synchronized是怎么保证没有安全问题的呢?

原文地址:https://www.cnblogs.com/wsw-bk/p/8031818.html