How can we run different task in different thread in gradle

I was trying to find a solution to run different task in different threads (depends/independents)

I have scenario where I need to run one task (which internally runs a
server) in different thread before running another task (test, depends
on above server) in gradle, after 2nd task completed I need to kill
first task.

Again, same as above scenario, run another set of server/test/kill tasks.

task exp{
   doFirst{
      run1stServerTask.execute()
   }

   def pool = Executors.newFixedThreadPool(5)
   try {
      def defer = { closure -> pool.submit(closure as Callable) }

      defer {
        run1stTest.execute()
        // After tests are finished, kill 1st server tasks
      }
      defer {
        run2ndServerTask.execute()
      }
      defer {
        run2ndTest.execute()
       // After tests are finished, kill 2nd server tasks
      }

    }
    finally {
      pool.shutdown()
     }
}

Hope, All above make senseā€¦ I am open for another approach if its possible in build.gradle.