线程同步和线程异步

标签: java多线程
2人阅读 评论(0) 收藏 举报
分类:

线程同步:是多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低   

线程异步:访问资源时在空闲等待时同时访问其他资源,实现多线程机制

异步处理就是,你现在问我问题,我可以不回答你,等我用时间了再处理你这个问题.同步不就反之了,同步信息被立即处理 -- 直到信息处理完成才返回消息句柄;异步信息收到后将在后台处理一段时间 -- 而早在信息处理结束前就返回消息句柄


区别同步和异步 一个进程启动的多个不相干线程,它们相互之间关系为异步。 同步必须执行到底之后才能执行其他操作,而异步可以任意操作
 
同步的好处与弊端
好处:解决了线程的安全问题。
弊端:每次都有判断锁,降低了效率。
但是在安全与效率之间,首先考虑的是安全。
 
同步的前提
一、多个线程执行的时候需要同步,如果是单线程则不需要同步。
二、多个线程在执行的过程中是不是使用同一把锁。如果是,就是同步。否则不是同步。
 
synchronzied(obj){ }同一个所
 
synchronzied(new Object){ } 不是同一个锁

对run()中需要同步的代码进行同步,如果有的代码不需要同步,则不要放到同步代码块中去。
 

同步的表现形式有两种:

1、同步代码块,被同步关键字封装的代码就是同步代码块;
2、同步函数,被同步关键字修饰的函数就是同步函数。

 

同步代码块的锁是可以是任意对象,在执行之前就好创建好一个锁对象。那么同步函数的锁在哪里?
同步函数的锁就是调用该同步函数的对象,也就是this。

 

如果同步函数被static修饰,那么该同步函数的锁就是这个类在堆内存中形成的类文件对象。
这时候不一定有该类的对象,但一定有该类的字节码文件对象。
查看评论

线程同步和线程异步有什么区别?

线程同步和线程异步有什么区别?(重要基础知识) 打个比方,如果你在等一个人, 同步的时候,你会一直等到她来了之后才做其他事情,这个过程除了等待你啥都不会做, 异步的时候,你一边在等,可能一边玩游...
  • mingliuboy
  • mingliuboy
  • 2012-01-06 18:05:15
  • 12714

线程同步异步实例分析

我的理解: 同步就是顺序执行。 异步就是可以并行执行。 多线程是实现异步操作的一种手段或方式...
  • fangqun663775
  • fangqun663775
  • 2015-06-12 11:16:36
  • 718

线程同步和异步区别 异步机制

1 区别同步和异步 举个简单的例子 就是游戏 游戏会有图像和背景音乐 图像是由玩家操作的 而背景音乐一般都是循环播放玩家不能操作 这里的图像和声音就分别是不同的线程 图像一般是主线程 背景音乐...
  • wxqian25
  • wxqian25
  • 2013-07-23 09:26:17
  • 12129

线程同步和异步区别 同步机制

线程同步和线程异步有什么区别?(重要基础知识) 打个比方,如果你在等一个人, 同步的时候,你会一直等到她来了之后才做其他事情,这个过程除了等待你啥都不会做, 异步的时候,你一边在等,可能一边玩游...
  • u011676589
  • u011676589
  • 2013-09-04 12:56:22
  • 1698

Java多线程同步和异步详解

1. 多线程并发时,多个线程同时请求同一资源,必然导致此资源的数据不安全。 2. 线程池 在WEB服务中,对于web服务器的响应速度必须尽可能的快,这就容不得在用户提交请求按钮后,再创建线程提供服...
  • hellorichen
  • hellorichen
  • 2016-11-12 22:26:50
  • 745

同步线程和异步线程的区别

1:同步可以看做是一个单线程操作,只要客户端请求了,在服务器没有反馈信息之前是一个线程阻塞状态(就是假死状态,不能操作其他方法)。 2:异步肯定是个多线程。在客户端请求时,可以执行其他线程,并且...
  • u014419806
  • u014419806
  • 2016-10-10 13:29:33
  • 14640

线程,进程,线程同步,线程异步,相关概念学习——》总结

新年刚开工,有小伙伴准备面试,问我线程方面的东西,自己对于概念的东西也是很少去理解和总结,不觉中,学习软件这行已近三年,做Android开发已经一年了。懂的却是十分浅的东西,既然已经过去的时光,就不必...
  • qq_33886657
  • qq_33886657
  • 2017-02-13 16:52:54
  • 348

线程同步异步概念

  • tlcssssun
  • tlcssssun
  • 2011-11-25 10:05:01
  • 180

孙鑫MFC笔记之十四--多线程同步与异步套接字编程

多线程同步编程方法1 事件对象 n事件对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状...
  • App_12062011
  • App_12062011
  • 2012-06-26 09:00:21
  • 3446

Java --- 线程同步和异步的区别

1. Java 线程 同步与异步多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线程的处理的数据,而B线程又修改了A线程处理的数理。显然这是由于全局资源造成的,有时...
  • u011033906
  • u011033906
  • 2016-12-23 15:23:37
  • 2700
    个人资料
    持之以恒
    等级:
    访问量: 724
    积分: 112
    排名: 122万+
    文章分类
    文章存档
    最新评论