黑马程序员技术交流社区
标题:
同步和异步有何异同
[打印本页]
作者:
贾波
时间:
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
狼王给你发文章连接了,理论也就不用说了。
写段代码测试下不就知道了!
package cn.itcast;
public class ThreadTest {
private int i = 0;
public static void main(String agrs[]) {
ThreadTest tt = new ThreadTest();
inc in = tt.new inc();
dec de = tt.new dec();
for(int j=0;j<2;j++){
Thread t=new Thread(in);
t.start();
t=new Thread(de);
t.start();
}
}
private synchronized void inc() {
i ++;
System.out.println(Thread.currentThread().getName()+"+inc:"+i);
}
private synchronized void dec() {
i --;
System.out.println(Thread.currentThread().getName()+"-inc:"+i);
}
class inc implements Runnable {
public void run() {
for(int j=0;j<100;j++)
{
inc();
}
}
}
class dec implements Runnable {
public void run() {
for(int j=0;j<100;j++)
{
dec();
}
}
}
}
复制代码
你把synchronized去掉,看看和加上的区别
作者:
瓶中人
时间:
2013-11-27 20:43
同步,是指语句在同步执行模式下,将始终保持对程序流的控制,直至程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户机端,然后才继续进行下一步操作。
异步,是指语句在异步执行模式下,各语句执行结 束的顺序与语句执行开始的顺序并不一定相同。例如 查询操作,客户机上的应用程序在向服务器发出了查询操作的指令后,将立刻执行查询语句指令的下一条 语句,而不需要等到服务器将查询结果返回客户机端。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2