(四十三)同步和异步有什么区别

一、同步机制(共享资源同一时刻只允许一个线程访问:排他性)

在多线程环境中,经常会遇到数据的共享问题,即当多个线程需要访问同一个资源时,它们需要以某种顺序来确保该资源在某一时刻只能被一个线程使用,否则,程序的运行结果将会不可预料(比如每个线程都有修改权限,同时改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会要求按顺序来修改)

同步机制举例:多个线程同时对同一数据进行写操作,即当线程A需要使用某个资源时,如果这个资源正在被线程B使用,同步机制就会让线程A一直等待下去,直到线程B结束对资源的使用后(即需要等待),线程A才能使用这个资源。即同步机制能够保证资源的安全。

简单来说:A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制,A等待

实现同步--锁:

要想实现同步操作,必须要或得每一个线程对象的锁。获得它可以保证在同一时刻只有一个线程能够进入临界区(访问互斥资源的代码块),并且在这个锁被释放前,其他线程就不能再进入这个临界区。若还有其他线程想要获得该对象的锁,只能进入等待队列等待。只有当拥有该对象锁的线程退出临界区,锁才能被释放,等待队列中优先级最高的获得锁。


	public class Demo implements Runnable
	{
	 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值