线程同步/异步 与 I/O同步/异步 中的同步/异步描述的是同一个概念么? 我看到JAVA中使用锁来做到线程同步,保证线程安全,这里的线程同步和同步I/O所表达的同步是否存在差异,而不是同一个概念呢?“同步I/O”表达的“同步”是说的一个线程发起一个I/O调用,调用不会立即返回,调用只有得到结果才会返回。Java锁所说的“线程同步”,这个“同步”好像和”同步I/O“的”同步”有所不同。比如:当 一个线程调用一个函数的时候,这个函数没上锁【synchronized/JAVA重入锁】,如果这个函数里做的是同步I/O,它是同步的 — 调用不会立即返回,调用得到结果才会返回;如果这个函数里做的是异步I/O,它是异步的 — 调用立即返回,没有返回结果,结果在调用发出后,函数通过状态、通知来通知线程结果已经返回,或通过回调函数处理、使用这个结果。当一个 线程调用一个函数的时候,这个函数上了锁【synchronized/JAVA重入锁】,如果这个函数里做的是同步I/O,它是同步的 — 调用不会立即返回,调用得到结果才会返回;如果这个函数里做的是异步I/O,它是异步的 — 调用立即返回,没有返回结果,结果在调用发出后,函数通过状态、通知来通知线程结果已经返回,或通过回调函数处理、使用这个结果。上了锁之后的内部是异步I/O的函数没有因为上了锁变成同步;函数没上锁且本身不是异步调用,它本身从来就是“同步”的。锁的作用只是保证了同一个函数只能同时被一个线程调用,它和“消息通信机制” —同步,没有联系。那么线程同步所说的同步应该怎么理解呢?还忘赐教 同步、异步,并发、并行、串行,这些名词在我们的开发中会经常遇到,这里对异步编程做一个详细的归纳总结,希望可以对这方面的开发有一些帮助。







2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/60203.html