js单线程与java多线程、同步与异步
2017-04-12 18:13
197 查看
写这篇博客源于想对比一下单线程js和多线程java两种语言的区别。
定义区:
单线程:只能执行一个任务,只有在完成执行后,才能继续执行其他的任务。
多线程:有多个线程,可以同时执行多个任务。
同步:当发送一个请求后,必须等待响应之后才能继续执行后面的程序。
异步:但发送一个请求后,可以不需要等待响应,可以直接执行后续的程序。
js中如果触发多个事件(事件驱动),那么要按照事件顺序逐个执行,这与java中多线程的各个单独线程的执行情况是一致的,在js中值得一提的是Ajax 技术,这是个异步方法,即在Ajax发送一个请求之后,我可以继续执行后面的程序,包括click等事件也是异步的,直到响应后,再将callback放入等待队列中。对于一整个Ajax来说,可以吧它当作是一个同步的,只有等请求得到响应之后,我才能执行Ajax的callback。
java中如果有多个任务,可以将他们分配到不同的线程中去执行,实现并发,每个单独线程中同步和异步情况和js中单线程情况是一致的。但多线程就存在一个资源共享的问题,就关于线程安全的问题,这是另一个问题,不予赘述。
定义区:
单线程:只能执行一个任务,只有在完成执行后,才能继续执行其他的任务。
多线程:有多个线程,可以同时执行多个任务。
同步:当发送一个请求后,必须等待响应之后才能继续执行后面的程序。
异步:但发送一个请求后,可以不需要等待响应,可以直接执行后续的程序。
js中如果触发多个事件(事件驱动),那么要按照事件顺序逐个执行,这与java中多线程的各个单独线程的执行情况是一致的,在js中值得一提的是Ajax 技术,这是个异步方法,即在Ajax发送一个请求之后,我可以继续执行后面的程序,包括click等事件也是异步的,直到响应后,再将callback放入等待队列中。对于一整个Ajax来说,可以吧它当作是一个同步的,只有等请求得到响应之后,我才能执行Ajax的callback。
java中如果有多个任务,可以将他们分配到不同的线程中去执行,实现并发,每个单独线程中同步和异步情况和js中单线程情况是一致的。但多线程就存在一个资源共享的问题,就关于线程安全的问题,这是另一个问题,不予赘述。
相关文章推荐
- Java基础知识强化之多线程笔记07:同步、异步、阻塞式、非阻塞式 的联系与区别
- Java中关于同步,异步,多线程,多线程同步,并发,并行的一些总结
- JAVA多线程编程设计模式:Half-sync/Half-async(半同步/半异步)模式
- Java知识点整理:第十四章:java多线程编程、创建一个线程、异步与同步、java反射、类加载
- Java多线程之~~~Fork/Join框架的同步和异步
- Java多线程基础之对象锁的同步与异步
- java同步 异步 多线程
- 【Java多线程】对象锁的同步和异步
- JAVA学习——java多线程的同步和异步
- 【Java多线程】共享变量&同步-异步容器&线程局部变量
- Java之多线程异步和同步
- thrift java多线程非阻塞同步/异步调用实例
- 浅谈Java多线程的同步问题
- Java多线程实现异步调用
- 浅谈Java多线程的同步问题
- 浅谈Java多线程的同步问题
- Java中的同步于异步
- Java同步、异步相关知识点
- C#.net同步异步SOCKET通讯和多线程总结
- Java同步、异步相关知识点