线程同步安全synchronized

本文介绍了Java中synchronized关键字用于线程同步的方法,包括synchronized方法和synchronized块。通过示例展示了未使用同步时可能出现的数据紊乱问题,以及使用同步后确保线程安全的效果。
摘要由CSDN通过智能技术生成

同步方法包括两种用法:synchronized方法和synchronized方法块

同步方法:public synchronized void method(int args){ }

synchronized方法控制对“对象”的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行就独占该锁,直到该方法返回才能释放锁,后面阻塞的线程才能获得这个锁,继续执行

缺点:一个大的方法申明为synchronized将会影响效率

synchronized实例:

package com.keji.oop;

//多线程操作同一个对象
//买火车票

//发现问题,当多个线程操作同一个资源,线程不安全,数据容易紊乱
public class ThreadDemo implements Runnable {
   

    private int ticket = 10;
    boolean flag = true;//外部停止方式

    @Override
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值