Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Multithreading 在不同线程上运行方法_Multithreading_Scala_Concurrency - Fatal编程技术网

Multithreading 在不同线程上运行方法

Multithreading 在不同线程上运行方法,multithreading,scala,concurrency,Multithreading,Scala,Concurrency,简单地说,对于一个硬件问题,我需要运行一个包含300万个元素的冒泡排序。通常这样做。然后对4个单独的列表进行排序,虽然不太准确,但这是不同线程上每个750000个元素所需的全部内容 我有一个扩展线程的类,如果我运行线程,它只打印一行。但我不知道如何让它运行一个方法 class thread extends Thread{ override def run() { // Displaying the thread that is running println("Th

简单地说,对于一个硬件问题,我需要运行一个包含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()


}

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

回想一下,类名应该大写。记住这一点可能是件好事,因为如果你在考试中忘记了这一点,你的老师可能会给你打分

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
  }
}  
如果你的导师没有限制你只使用线程,我也会像路易斯·米格尔·梅西亚·苏亚雷斯一样,推荐未来而不是线程。它使用的语法更简洁,更适合我在专业环境中进行多线程处理。然而,选择可能不是你的,所以如果你的老师说使用线程,就使用线程

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


祝你好运

也许你想用Future代替Thread。Re,不太准确,但是。。。冒泡排序四个N/4个元素的列表比排序一个N个元素的列表花费的时间更少,即使您只使用一个线程。在尝试解释多线程实验的结果之前,您应该了解所需的时间和原因。请根据设置代码格式。您需要了解要排序的数据。就不可变而言,您可以定义构造函数将数据传递给子类的对象。对不起,我的英语不好