前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多线程笔记(六)synchronized 方法 和 synchronized 块

多线程笔记(六)synchronized 方法 和 synchronized 块

作者头像
一写代码就开心
发布2021-08-24 10:32:00
3250
发布2021-08-24 10:32:00
举报
文章被收录于专栏:java和python

synchronized 方法

这个就是一个关键字,在我们的方法上加这个关键字,那么这个方法就被同步了

这个是锁的 这个方法的类 本身

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
public class qp implements Runnable {
    private int ticket = 10;
    private boolean flag = true;

    @Override
    public void run() {
        while (flag){

            try {
                Thread.sleep(Long.parseLong("200"));
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            runn();

        }





    }

    private synchronized void  runn(){
        if(ticket <=0){
            return;
        }
        System.out.println(Thread.currentThread().getName() + "拿到了第" + ticket-- + "票");

    }

    public static void main(String[] args) {
        qp qp = new qp();
        Thread thread = new Thread(qp,"小红");
        Thread thread1 = new Thread(qp,"需");
        Thread thread2 = new Thread(qp,"uu");
        thread.start();
        thread1.start();
        thread2.start();
    }
}

以上的代码就是 ,将run方法里面的代码提取出来,另外写一个方法,在这个重新写 的方法上面加synchronized关键字,那么 现在线程就加锁了,在买票的时候,不会出现负数的情况

synchronized 块

这个同步监视器 的值就是对哪个对象进行增删改查 那么这个参数就是哪个值

这个就是需要锁 变化的量,这个变化的量 就是需要增删改查的对象

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
public class ArrayL {
    public static void main(String[] args)  {
        List<String> strings = new ArrayList<>();
        for(int i=0;i<10000;i++){
            new Thread(() -> {

代码块
                synchronized(strings) {
                    strings.add(Thread.currentThread().getName());
                }
            }).start();
        }
        try {
            Thread.sleep(Long.parseLong("3000"));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(strings.size());
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • synchronized 方法
  • synchronized 块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档