学习多线程之synchronized记录

137 阅读2分钟

「这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战

写在前面

昨天我们学习了多线程知识中的守护线程相关的概念知识,了解了用户线程,和守护线程的区别,还有其中的依赖关系。

今天我们要来学习些什么呢?一个关键字,那就是synchronize关键字的一些使用。

学习多线程之synchronized记录

今天来学习多线程中的synchronize关键字,主要就是要来说一下其中的特性,还有具体的应用场景,还有最重要的如何使用。

synchronize关键字是Java内置的一个关键字,主要是提供同步锁的功能,也就是独占线程至完成的功能。

一般在我们的日常开发中,多少都会存在一些并发的情况,或多或少,总会遇到的。

当然如果在一个场景下,多个线程可能同时操作一个数据,或者一个集合,再或者一个数据结构。

最先要考虑的就是加上同步锁,也就是synchronize关键字。

通过synchronize关键字来修饰方法,则进入此方法的线程只能有一个,以此来实现同步锁的效果。

比如下面这个代码示例,就是使用synchronize关键字的一个案例:

public class Test {
    Integer num = 0;
    public synchronized Integer add(Integer size){
        num = num + size;
        return num;
    }
}

通过上面这个代码,如果你通过Test对象对add进行访问时,就会发现在多个线程同时访问下,就只会一次只有一个线程能够进入此方法内。

除此之外,synchronize关键字还可以修饰对象实例,修饰同步代码块,除了这些还能修饰静态方法。

在不同的情况下,可以造成不同的同步锁效果,只不过是作用的对象不同了。

总结

今天我们大概学习了java多线程中的synchronize关键字是如何使用的,大家是否能有所收获,明天我们接着来说多线程中的其他知识点。