7.3 面试问题-利用Java线程做数据计算

这是一个显示如何利用join()进行计算的例子。面试问题:利用Java多线程计算表达式1*2/(1+2).

解决:
用一个线程计算加法操作,一个线程计算乘法操作,主线程计算除法操作。因为线程之间不需要交换数据,索引仅仅需要考虑线程执行顺序。

在主线程中,让相加和乘法join到主线程。当我们希望父线程等待直到调用join()线程结束时,使用join()方法。在这种情况下我们首先需要加法和乘法,然后进行除法。

class Add extends Thread {
    int value;
 
    public void run() {
        value = 1 + 2;
    }
}
 
class Mul extends Thread {
    int value;
 
    public void run() {
        value = 1 * 2;
    }
}
 
public class Main{
    public static void main(String[] args){
        Add t1 = new Add();
        Mul t2 = new Mul();
 
        t1.start();
        t2.start();
 
        try {
            t1.join();
            t2.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
 
        double n = ((double)t2.value/t1.value);
 
        System.out.println(n);      
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,815评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,607评论 11 349
  • 一、多线程 说明下线程的状态 java中的线程一共有 5 种状态。 NEW:这种情况指的是,通过 New 关键字创...
    Java旅行者阅读 10,213评论 0 44
  • 下面是我自己收集整理的Java线程相关的面试题,可以用它来好好准备面试。 参考文档:-《Java核心技术 卷一》-...
    阿呆变Geek阅读 15,061评论 14 507
  • 一、线程概念 1. 操作系统中的线程现在的操作系统是多任务操作系统,多线程是实现多任务的一种方式,在操作系统中,每...
    TyiMan阅读 5,924评论 1 35

友情链接更多精彩内容