在编码中遇到什么场景(尤其是 JAVA 程序),需要指定线程的执行顺序,而不是让他们一起执行?

发布于 2022-09-12 01:09:16 字数 54 浏览 13 评论 0

在编码中遇到什么场景(尤其是 JAVA 程序),需要指定线程的执行顺序,而不是让他们一起执行?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半城柳色半声笛 2022-09-19 01:09:17

只要后续的操作依赖于前面的结果,那么都需要按特定顺序执行.

举个烂栗子:

假设有1亿个数,想求方差. 你可以

  1. 先起10个线程, 每个线程分1千万数据,分别求和,
  2. 得到后再加一起,
  3. 然后再起10个线程,分别计算方差.

这个例子中,三个步骤必须顺序执行, 每个步骤又可以多线程的方式并行.

1并行   2同步  3并行
-----\        /-----
------=======-------
-----/        \-----
屋檐 2022-09-19 01:09:17

一般是多线程环境下需要安全访问非线程安全的资源,就会要求互斥执行,其他不关心线程安全的代码可以并发执行,最大可能地提高程序的执行效率。
比如多线程下载工具把,可以开多个线程同时下载数据分块,但是下载到内存的数据写入磁盘过程必须单线程写,一个接一个,因为磁盘操作不是线程安全的,并发写入会造成数据错乱,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文