JAVA项目中哪些场景需要用到多线程,深感迷茫,请使用过的高手指点。

一,最好结合具体的项目说明,并指明为什么此处要用,越详细越好;
二,请勿搬概念;
万分感谢

场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万分钟,有点恐怖。这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所有的线程执行完是远小于1万分钟的。

场景二:需要知道一个任务的执行进度,比如我们常看到的进度条,实现方式可以是在任务中加入一个整型属性变量(这样不同方法可以共享),任务执行一定程度就给变量值加1,另外开一个线程按时间间隔不断去访问这个变量,并反馈给用户。
总之使用多线程就是为了充分利用cpu的资源,提高程序执行效率,当你发现一个业务逻辑执行效率特别低,耗时特别长,就可以考虑使用多线程。不过CPU执行哪个线程的时间和顺序是不确定的,即使设置了线程的优先级,因此使用多线程的风险也是比较大的,会出现很多预料不到的问题,一定要多熟悉概念,多构造不同的场景去测试才能够掌握!
温馨提示:内容为网友见解,仅供参考
无其他回答

JAVA项目中哪些场景需要用到多线程,深感迷茫,请使用过的高手指点。
场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万分钟,有点恐怖。这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所...

java电商项目,什么场景需要使用多线程
在电商项目的开发中,多线程的运用可以显著提升系统的响应速度与处理效率。举个例子,当需要验证1万条URL路径是否存在时,如果采用单线程的方式,每条URL的验证耗时大约为1分钟,那么总共需要1万分钟,这显然是不可接受的。这时,可以考虑使用多线程技术,将1万条URL分成50等份,每个线程负责验证200条URL,...

java的多线程有什么用处?
关于线程同步,需要牢牢记住的第二点是 “共享”这两个字。只有共享资源的读写访问才需要同步。如果不是共享资源,那么就根本没有同步的必要。 关于线程同步,需要牢牢记住的第三点是,只有“变量”才需要同步访问。如果共享的资源是固定不变的,那么就相当于“常量”,线程同时读取常量也不需要同步。至少一个线程修改共...

在编程中,什么时候使用多线程
·多线程块模型(自由线程块模型)多线程块模型(MTA)在每个进程里只有一个块而不是多个块。这单个块控制着多个线程而不是单个线程。这里不需要消息队列,因为所有的线程都是相同的块的一个部分,并且可以共享。这样的程序比单线程模型和STA的执行速度都要块,因为降低了系统的负载,因而可以优化来减少...

Java多线程实战|CountDownLatch原理介绍及使用场景
在实际应用中,CountDownLatch的使用场景较为多样,尤其是需要协调多个线程同时开始执行任务,以达到最大并行性。例如,可以将多个线程放入起跑线,等待一个信号后同时启动,确保所有线程在同一时刻开始执行任务。具体实现时,我们初始化一个共享的`CountDownLatch`对象,其计数器值为1,表示只有一个线程需要...

springboot何时使用多线程?
在Spring Boot应用程序中,可以考虑使用多线程的几个常见场景:1. 长时间的I\/O操作:当应用程序需要执行长时间的I\/O操作(如文件读写、网络请求等)时,可以将这些操作放在单独的线程中执行,以避免阻塞主线程,提高应用程序的并发能力和响应性能。2. 并行处理任务:如果应用程序需要同时处理多个独立的...

java项目技术难点及解决方法(做java项目时最大的难点是什么)
微服务技术微服务架构主要有:SpringCloud、Dubbo、Dubbox等,以Dubbo占比最高,可达26%,微服务网关技术,使用springcloud-zuul的程序员占比最高。Java开发需要掌握以下技术:掌握Java语言的使用:语言语法、程序逻辑,OOP(面向对象)思想,封装、继承、多态,集合框架、泛型、FileI\\O技术,多线程技术、...

Java多线程:从基本概念到避坑指南
2.3.wait要包两层 Object作为Java的基类,提供了四个方法waitwait(timeout)notifynotifyAll,用来处理线程同步问题,可以看出wait等函数的地位是多么的高大。在平常的工作中,写业务代码的同学使用这些函数的机率是比较小的,所以一旦用到很容易出问题。 但使用这些函数有一个非常大的前提,那就是必须使用synchronized进行...

使用JAVA CompletableFuture实现流水线化的并行处理,深度实践总结_百度...
在使用 CompletableFuture 时,我们需要注意一些细节,如选择合适的线程池、与 Stream 结合使用时的注意事项等。通过合理利用这些功能,我们可以构建高效、灵活的异步处理逻辑。最后,让我们总结并发与并行的区别。并发关注的是服务器在同一时间内可以处理的请求数量,而并行则更注重通过多线程并行执行任务来提高...

JAVA高手请进!!真的要是高手,答好了继续给分
二、去了解一下tomcat中web.xml的<listener><\/listener>及java中的线程及有关定时方面的java类 只有两个要求:〔对你来说这两点都不难〕第一、提供cs及bs两种管理模式。第二、不能在数据库中放入重复的邮件地址,放入数据库中的邮件地址一定要是有效的。其它同理!不要说没有可行性,网上扔个石头...

相似回答