Java的线程在项目中一般会有什么具体的应用?
Java的线程机制是其本身所具有的,没有调用操作系统的。那么Java的这个特质有什么非常优越的地方吗》具体体现在什么地方?...
Java的线程机制是其本身所具有的,没有调用操作系统的。那么Java的这个特质有什么非常优越的地方吗》具体体现在什么地方?
展开
展开全部
java线程在项目中的应用场景如下:
场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万分钟,有点恐怖。这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所有的线程执行完是远小于1万分钟的。
场景二:需要知道一个任务的执行进度,比如我们常看到的进度条,实现方式可以是在任务中加入一个整型属性变量(这样不同方法可以共享),任务执行一定程度就给变量值加1,另外开一个线程按时间间隔不断去访问这个变量,并反馈给用户。
总之使用多线程就是为了充分利用cpu的资源,提高程序执行效率,当你发现一个业务逻辑执行效率特别低,耗时特别长,就可以考虑使用多线程。不过CPU执行哪个线程的时间和顺序是不确定的,即使设置了线程的优先级,因此使用多线程的风险也是比较大的,会出现很多预料不到的问题,一定要多熟悉概念,多构造不同的场景去测试才能够掌握!
场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万分钟,有点恐怖。这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所有的线程执行完是远小于1万分钟的。
场景二:需要知道一个任务的执行进度,比如我们常看到的进度条,实现方式可以是在任务中加入一个整型属性变量(这样不同方法可以共享),任务执行一定程度就给变量值加1,另外开一个线程按时间间隔不断去访问这个变量,并反馈给用户。
总之使用多线程就是为了充分利用cpu的资源,提高程序执行效率,当你发现一个业务逻辑执行效率特别低,耗时特别长,就可以考虑使用多线程。不过CPU执行哪个线程的时间和顺序是不确定的,即使设置了线程的优先级,因此使用多线程的风险也是比较大的,会出现很多预料不到的问题,一定要多熟悉概念,多构造不同的场景去测试才能够掌握!
展开全部
首先对java的线程类Thread来进行说明:
Thread是针对是java其本身所具有的,但并不能说其没有调用操作系统,其最底层的时间片调度是按照操作系统来执行的。
Thread下可以创建Thread,2个Thread在一定条件下也可以相互调用。
根据以上特点可以总结认为java中的线程能让高级程序员更好的对庞大和复杂的数据流进行拆分,重组从而减低各个环节性能需求,通过增加各项负荷达到系统资源分配的最优值。
举个例子:一个程序需要需要一个2.0GHZ的CPU,占用10%的CPU使用1小时才能得出结果,最差方案就是用1小时。但有了线程使用多线程,在假设所有线程都可以并发执行的前提下我可以使用,10个线程让CPU利用率达到100%,这时我只要6分钟就可以有结果,虽然这些结果分散在10个不同的线程内,我可以再得到10个结果后对10个结果进行处理,得出最终结果,无论从时间维度还是CPU使用率维度,使用多线程是最优解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程是程序中的一个执行流,没有java程序都main函数开始的,有main的线程又称为主线程。除了主线程还可以有多个线程来同时(相对的)执行不同的任务。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程主要的几个作用
第一个,当程序中有数据要处理,且该数据处理时间可能较长的情况下,如果不想响应的主线程的运行,则可新建子线程,并在其中操作数据;
第二个,操作的并行执行
第三个,自定义线程可作为定时器用
第一个,当程序中有数据要处理,且该数据处理时间可能较长的情况下,如果不想响应的主线程的运行,则可新建子线程,并在其中操作数据;
第二个,操作的并行执行
第三个,自定义线程可作为定时器用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程一般用来控制项目的流程,线程之间通信,可以通过管道来传输数据!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询