Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解Java中多线程的简单任务_Java_Multithreading - Fatal编程技术网

理解Java中多线程的简单任务

理解Java中多线程的简单任务,java,multithreading,Java,Multithreading,关于java中的线程,我有几个问题 为了更好地理解,我尝试用线程解决一些简单的任务。我有一个方法,它获取一个int值和一个intt计数,并返回一个长结果。它应该做的只是计数,从一开始,然后将每一个添加到结果中。现在,tCount变量告诉我应该用多少线程来完成。例如: myMethod(10,1)应在单个线程中计算:1+2+3+4+5+6+7+8+9+10,并返回长结果 myMethod(10,2)应该计算相同的值,但可以这样说: thread1计算1+3+5+7+9 thread2计算2+4+

关于java中的线程,我有几个问题

为了更好地理解,我尝试用线程解决一些简单的任务。我有一个方法,它获取一个
int值
和一个
intt计数
,并返回一个
长结果
。它应该做的只是计数,从一开始,然后将每一个添加到
结果中。现在,
tCount
变量告诉我应该用多少线程来完成。例如:

myMethod(10,1)
应在单个线程中计算:
1+2+3+4+5+6+7+8+9+10
,并返回
长结果

myMethod(10,2)
应该计算相同的值,但可以这样说:

  • thread1
    计算
    1+3+5+7+9

  • thread2
    计算
    2+4+6+8+10

最后,应将这两个结果添加到
长结果
,并返回
结果

当我尝试实现它时,我有不同的方法。例如,匿名类(总是有变量的问题,这些变量应该是有效的最终变量),但没有任何东西可以工作

你的想法是什么

  • 创建额外的
    扩展线程
    或实现
    可运行
  • 您将如何创建为您的方法提供的线程数量
  • 您将在哪里实现哪个变量,以便在需要时访问它
  • 那么线程管理呢?不同线程不应同时使用变量结果,对吗

非常感谢

您可以创建两个线程,其中一个线程执行并进入等待状态,然后唤醒另一个线程,另一个线程在执行后进入等待状态,然后唤醒另一个线程。像这样交替执行。

我想到的第一件事是
CompletableFuture
s。您可以阅读它们。请发布一些您尝试过的代码。
扩展线程
实现可运行
是一个在本网站上被多次询问和回答的问题。使用搜索功能查找答案。Re“您将在哪里实现哪个变量,以便在需要时访问它?”如果您需要帮助,那么我建议您在深入学习线程之前,花更多时间学习Java语言和面向对象设计。线程是一个具有挑战性的课题。在用您不完全理解的语言编写代码时,试图理解线程并没有任何意义。