急求:java 如何获得线程运算的结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求:java 如何获得线程运算的结果相关的知识,希望对你有一定的参考价值。
如题,因为是多线程并行计算,而线程的run()方法不提供返回值,我该怎么获得线程的运算结果呢?即,一个线程运行结束返回给主函数一个结果,并行计算的线程返回的结果是一个矩阵的元素。请大虾指教~
在main方法中创建一个数组。所有线程类的构造方法都需要一个数组做参数。线程体结束时给数组中的某个元素赋值。
public void run()
......
a[i] = ......;
main方法中等待所有线程结束后打印数组。
t1.join(); 参考技术A 我不敢确定我说的对啊 首先想从run里拿出结果 无非就是在外面设置一个静态的全局变量。另外Thread这个类里 可以取得很多当前线程的信息 比如Thread.currentThread().* 这个*里有很多可以get 和set的方法也许你用的上 参考技术B 线程相当于异步会话,和主函数没有同步执行。
所以要让线程返回的数据在主函数中同步执行是存在问题的。
你可以再建一个守护线程,来监控你多线程返回的数据,多线程返回的数据可以通过系统静态变量来记录。
具体只能和你说这么多了,不知道你的业务是个什么业务。 参考技术C 在线程中放入方法吧,方法中有返回值就得了。 参考技术D 加个类变量就可以
急求c++代码。。。大数运算,包括(+ - * / %),用类实现。。。
输入描述:
输入数据由若干组数据,每组数据由一个运算符(+ - * / %)和两个整数构成,整数范围在-10150~10150之间,如果运算符晕倒‘@’,则表示运行结束。
输出描述
对于每组数据,输出其运算符序号和运算结果,其中的‘/’为整除运算。每个结果单独成行。
如果运算结果超过200位,则应输出“Too Large Number。”
如果输入整数空,或者有前导0,则应输出“Illegal Number。”
如果输入符号不是上述的物种运算符之一,则输出”Illegal Opeartor”,并在输入操作上,应跳过后续的两个操作符。
如果除0,则应输出“Divide By Zero.:”
如何封装,这个在GMP的官方网站上有详细的说明,自己去看吧 gmplib.org追问
可是我想要个代码先看看,用c++的。。。
追答这个是我从gmplib.org 直接copy下来的例子,1分钟就能看明白,自己看吧。要是连搜索引擎都懒得用,还是别学编程了吧
#include
int main (void)
mpz_class a, b, c;
a = 1234123412341234;
b = "-5678567856785678";
c = a+b;
cout << "sum is " << c << "\n";
cout << "absolute value is " << abs(c) << "\n";
return 0;
我想问一下,你编程怎么样啊?其实每次有不懂的都是google的。。。所以搜索引擎都懒得用这不是问题。。。
本回答被提问者采纳以上是关于急求:java 如何获得线程运算的结果的主要内容,如果未能解决你的问题,请参考以下文章