A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾波 中级黑马   /  2013-11-27 19:53  /  1656 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 贾波 于 2013-11-28 18:01 编辑

同步和异步有何异同,在什么情况下分别使用他们?请举例说明下

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 我也不知道,不过百度应该能百到吧.

查看全部评分

4 个回复

倒序浏览
回复 使用道具 举报
TCP就是同步,要求通信双方在线,就像打电话一样,双方在线电话才能接通,数据传输方式和是比特流。
UDP是异步,接收方可以不在线,比如发QQ消息,传输方式是帧,但是需要加上开始和结束标志,这样才能准确的接受信息。
治愈什么时候使用,看情况。
回复 使用道具 举报
狼王给你发文章连接了,理论也就不用说了。
写段代码测试下不就知道了!
  1. package cn.itcast;
  2. public class ThreadTest {
  3.         private int i = 0;
  4.         public static void main(String agrs[]) {
  5.                 ThreadTest tt = new ThreadTest();
  6.                 inc in = tt.new inc();
  7.                 dec de = tt.new dec();
  8.                 for(int j=0;j<2;j++){
  9.                         Thread t=new Thread(in);
  10.                         t.start();
  11.                         t=new Thread(de);
  12.                         t.start();
  13.                 }
  14.         }
  15.         private synchronized void inc() {
  16.                 i ++;
  17.                 System.out.println(Thread.currentThread().getName()+"+inc:"+i);
  18.         }
  19.         private synchronized void dec() {
  20.                 i --;
  21.                 System.out.println(Thread.currentThread().getName()+"-inc:"+i);
  22.         }
  23.         class inc implements Runnable {
  24.                 public void run() {
  25.                         for(int j=0;j<100;j++)
  26.                         {
  27.                                 inc();
  28.                         }
  29.                 }
  30.         }
  31.         class dec implements Runnable {
  32.                 public void run() {
  33.                         for(int j=0;j<100;j++)
  34.                         {
  35.                                 dec();
  36.                         }
  37.                 }
  38.         }
  39. }
复制代码

你把synchronized去掉,看看和加上的区别
回复 使用道具 举报
      同步,是指语句在同步执行模式下,将始终保持对程序流的控制,直至程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户机端,然后才继续进行下一步操作。
     异步,是指语句在异步执行模式下,各语句执行结 束的顺序与语句执行开始的顺序并不一定相同。例如 查询操作,客户机上的应用程序在向服务器发出了查询操作的指令后,将立刻执行查询语句指令的下一条 语句,而不需要等到服务器将查询结果返回客户机端。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马