Multithreading 在不同线程上运行方法
简单地说,对于一个硬件问题,我需要运行一个包含300万个元素的冒泡排序。通常这样做。然后对4个单独的列表进行排序,虽然不太准确,但这是不同线程上每个750000个元素所需的全部内容 我有一个扩展线程的类,如果我运行线程,它只打印一行。但我不知道如何让它运行一个方法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
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个元素的列表花费的时间更少,即使您只使用一个线程。在尝试解释多线程实验的结果之前,您应该了解所需的时间和原因。请根据设置代码格式。您需要了解要排序的数据。就不可变而言,您可以定义构造函数将数据传递给子类的对象。对不起,我的英语不好