出于对线程的保护,我们给每个线程配备了一把锁,synchronized就发挥着锁的作用。如果每个线程都有相应的锁,就不用担心多个线程出错的问题。只有当这个线程用完某一资源后,其他线程才能继续使用。下面我们就synchronized的概念、三种作用及方法分享给大家,最后带来使用的实例。
1.synchronized概念
能够保证同一时刻最多只有一个线程执行该段代码,以达到并发安全的效果。
2.synchronized的三个作用
(1)确保线程互斥的访问同步代码
(2)保证共享变量的修改能够及时可见
(3)有效解决重排序问题。
3.synchronized三种用法
(1)修饰普通方法
(2)修饰静态方法
(3)修饰代码块
4.synchronized实例
public class SynTest01 implements Runnable{ static int a=0; public static void main(String[] args) throws InterruptedException { SynTest01 syn= new SynTest01(); Thread thread1 = new Thread(syn); Thread thread2 = new Thread(syn); thread1.start();thread1.join(); thread2.start();thread2.join(); System.out.println(a); } @Override public void run() { for(int i=0;i<1000;i++) { a++; } } }
以上就是java中关于synchronized的介绍,相信大家已经对这种锁的有了初步的认知。接下来就synchronized的使用以及一些内容上的分析,会不断带来更多的讲解。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)