锁---原子性

sysnchronized:同步锁,依赖于jvm实现,在作用对象的作用范围内同一时刻只能有一个线程来操作。

不可中断锁,适合竞争不激烈,可读性好

        修饰代码块:{}之间的代码,作用于调用的代码块的对象

        修饰方法:整个方法,作用于调用的方法的对象

        修饰静态方法:整个静态方法,作用于所有对象

        修饰类:括号括起来的部分,作用于所有对象

package com.jiaoshou.concurency.example.sysc;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

/**

* @author yangkaifei

* @date 2018/12/5 11:44

*/

@Slf4j

public class SynchronizedExample{

        /******修饰一个代码块*******/

         public void test1(){

            synchronized (this){

                for (int i =0; i <10; i++) {

                    log.info("test1-{}",i);

                 }

            }

        }    

/*******修饰一个方法*******/

        public synchronized void test2(String sss){

            for (int i =0; i <10; i++) {

                log.info("test2-{}  {}",sss,i);

             }

        }

        /******修饰一个类*******/ 

        public static void test1(){

            synchronized (SynchronizedExample2.class){

                for (int i = 0; i < 10; i++) {

                    log.info("test1-{}",i);

                }

            }

        }

        /*******修饰一个静态方法*******/

        public static synchronized void test2(String sss){

            for (int i = 0; i < 10; i++) {

                log.info("test2-{} {}",sss,i);

            }

        }  

        public void test(String sss){

            for (int i =0; i <10; i++) {

                log.info(sss+"-{}",i);

             }

        }

        public static void main(String[] args) {

            SynchronizedExample syn1=new SynchronizedExample();

            SynchronizedExample syn2=new SynchronizedExample();

            //声明一个线程池

            ExecutorService executorService=Executors.newCachedThreadPool();

            executorService.execute(

                ()->{syn1.test2("aaa");}

            );

            executorService.execute(

                ()->{syn2.test2("bbb");}

            );

        }

}    

lock:依赖于cpu执行(ReentrantLock)

可中断锁,多样化同步,竞争激烈时能维持常态。

都撒旦法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 废话不多说,自己进入今天的主题 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:...
    传奇内服号阅读 2,382评论 1 31
  • 2018年08月27日 07:05 美好的一天,始于语音写作。 昨天睡得比较晚,睡了七个多小时,但早上依旧没能爬的...
    博庚阅读 382评论 0 1
  • 凌晨十二点的钟声敲响,月光与星光被大片的云儿给遮住,剩下寂静的黑。 这时的鹦鹉桥伫立在朦胧的灯光下,它需要灯光的照...
    咩一阅读 135评论 0 0