Zach Lyness
Zach Lyness

Reputation: 1

Running methods on different threads

simply put for a hw problem I need to run a bubble sort with 3 million elements. Do this normally. and then sort 4 individual lists (not nearly accurate but is all thats required) of 750000 elements each on a different thread.

I have a class that extends thread that simply prints a line if im running the thread. But I'm not sure how to get it to run a method

   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()


}

Upvotes: 0

Views: 40

Answers (1)

Allen Han
Allen Han

Reputation: 1163

I am going to stick to answering the question you asked instead of trying to do your homework for you. I hope that is enough to get your started trying things out for yourself.

Recall that class names should be capitalized. That is probably a good thing to remember as your instructor will probably mark you down if you forget that during an exam.

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
  }
}  

If your instructor has not restricted you to using Thread only, I would also, similar to Luis Miguel Mejía Suárez, recommend Future instead of Thread. The syntax it uses is cleaner and preferable for how I would do multithreading in a professional setting. However, the choice may not be yours, so if your teacher says use Thread, use Thread.

For a primer on using Futures, see here.

Good luck!

Upvotes: 1

Related Questions