黑马程序员技术交流社区

标题: 同步和异步有何异同 [打印本页]

作者: 贾波    时间: 2013-11-27 19:53
标题: 同步和异步有何异同
本帖最后由 贾波 于 2013-11-28 18:01 编辑

同步和异步有何异同,在什么情况下分别使用他们?请举例说明下
作者: 狼王    时间: 2013-11-27 20:24
给你看一篇文章:http://wenku.baidu.com/link?url= ... 1hiLJpTzbnJgpaggaIu
作者: 半夜雨半夜雨    时间: 2013-11-27 20:32
TCP就是同步,要求通信双方在线,就像打电话一样,双方在线电话才能接通,数据传输方式和是比特流。
UDP是异步,接收方可以不在线,比如发QQ消息,传输方式是帧,但是需要加上开始和结束标志,这样才能准确的接受信息。
治愈什么时候使用,看情况。
作者: 石头6004    时间: 2013-11-27 20:39
狼王给你发文章连接了,理论也就不用说了。
写段代码测试下不就知道了!
  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去掉,看看和加上的区别
作者: 瓶中人    时间: 2013-11-27 20:43
      同步,是指语句在同步执行模式下,将始终保持对程序流的控制,直至程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户机端,然后才继续进行下一步操作。
     异步,是指语句在异步执行模式下,各语句执行结 束的顺序与语句执行开始的顺序并不一定相同。例如 查询操作,客户机上的应用程序在向服务器发出了查询操作的指令后,将立刻执行查询语句指令的下一条 语句,而不需要等到服务器将查询结果返回客户机端。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2