java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解

本文详细介绍了Java中同步代码块和同步方法的概念及应用,通过实例展示了如何使用它们实现线程安全的售票功能。同步确保了在关键操作上的原子性和线程间的协调,防止数据竞争。同步代码块使用特定对象锁,同步方法则使用当前对象锁。示例代码显示了同步在多线程环境中的效果。
摘要由CSDN通过智能技术生成

本文实例讲述了java同步代码块和同步方法。分享给大家供大家参考,具体如下:

一 点睛

所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况。言外之意是这段代码就像原子一样,不可拆分。

同步的含义:多线程在代码执行的关键点上,互通消息,相互协作,共同把任务正确的完成。

同步代码块语法:

synchronized(对象)

{

需要同步的代码块;

}

同步方法语法:

访问控制符 synchronized 返回值类型方法名称(参数)

{

需要同步的代码;

}

二 同步代码块完成卖票功能

1 代码

public class threadSynchronizwww.cppcns.comation

{

public static void main( String[] args )

{

TestThread t = new TestThread();

// 启动了四个线程,实现资源共享

new Thread( t ).start();

new Thread( t ).start();

new Thread( t ).start();

new Thread( t ).start();

}

}

class TestThread implements Runnable

{

private int tickets = 5;

@Override

public void run()

{

while( true )

{

synchronized( this )

{

if( tickets <= 0 )

break;

try

{

Thread.sleep( 100 );

}

catch( Exception e )

{

e.printStackTrace();

}

System.out.println( Thread.currentThread().getName() + "出售票" + tickets );

tickets -= 1;

}

}

}

}

2 运行

Thread-0出售票5

Thread-3出售票4

Thread-3出售票3

Thread-2出售票2

Thread-2出售票1

三 同步方法完成买票功能

1 代码

public class threadSynchroniz

2 运行

Thread-0出售票5

Thread-0出售票4

Thread-3出售票3

Thread-2出售票2

Thread-1出售票1

更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

本文标题: Java同步代码块和同步方法原理与应用案例详解

本文地址: http://www.cppcns.com/ruanjian/java/281711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值