在不同线程上运行方法

时间:2019-08-14 15:56:47

标签: multithreading scala concurrency

简单地说一个硬件问题,我需要运行一个包含300万个元素的冒泡排序。正常执行此操作。然后对4个单独的列表(不是很准确,但仅此而已)进行排序,每个列表中有750000个元素在不同的线程上。

我有一个扩展线程的类,如果我正在运行该线程,它将仅打印一行。但是我不确定如何运行方法

   class thread extends Thread{
   override def run()
   {
   // Displaying the thread that is running
   println("Thread " + Thread.currentThread().getName() +" is running.")

    }
     }    

//this for loop is in an object

for (c <- 1 to 5)
{
  var th = new thread()
  th.setName(c.toString())
  th.start()


}

1 个答案:

答案 0 :(得分:1)

我将坚持回答您提出的问题,而不是尝试为您做作业。我希望这足以让您开始自己尝试一下。

回想一下,类名应大写。记住这可能是一件好事,因为如果您在考试期间忘记了指导老师的话,您可能会打分。

class MyThread extends Thread{
  override def run() = {
    // Displaying the thread that is running
    println("Thread " + Thread.currentThread().getName() +" is running.")

    sort()
  }

  def sort() = {
    // my sorting code here
  }
}  

如果您的指导老师并没有限制您仅使用Thread,那么与Luis MiguelMejíaSuárez一样,我也建议您使用Future而不是Thread。它使用的语法更干净,更适合我在专业环境中进行多线程处理。但是,选择可能不是您的选择,因此,如果您的老师说使用Thread,请使用Thread。

有关使用期货的入门知识,请参见here

祝你好运!