面试难题:使用Java线程进行数学计算

这是显示如何使用join()的示例。面试问题:使用Java多线程计算表达式1 * 2 /(1 + 2)。
使用一个线程进行加法,使用一个线程进行乘法,并使用一个主线程进行除法。由于不需要在线程之间进行数据通信,因此只需要考虑线程执行的顺序即可。
在主线程中,让加法和乘法加入主线程。当我们希望父线程等待直到调用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);		
}}

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。在这里插入图片描述

发布了76 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zhaozihao594/article/details/104030705