from odoo import api, models, _
from concurrent.futures import ThreadPoolExecutor, as_completed
Se define un modelo con dos metodos:
class Report(models.AbstractModel):
	def long_time_method(self,parm1, parm2):
		# do something with long time
		# if you need made a search inside this method must do
		new_cr = self.pool.cursor()
		self = self.with_env(self.env(cr=new_cr))
		# here put your querry
		query = ['&','&',('type_template_id','in',mark_tpl_ids),                    						('class_division_id','=',sheet.class_division_id.id),                    					('academic_year_id','=',sheet.academic_year_id.id)]
		result = self.env['your.model'].search(querry).with_env(self.env(cr=new_cr))
		new_cr.commit()
		# IMPORTANT to close the cursor
		new_cr.close()        
 
	def main_method (self):
		# simulate pool of parameters
		params ={
			parm1_a:parm2_a,
			parm1_b:parm2_b,
			parm1_c:parm2_c,
		}
		#Se crea el pool
		with ThreadPoolExecutor(max_workers=3) as executor:
			futures = {executor.submit(self.bedSheetTable,parm1,parm2):cualquier_dato for parm1,parm2 in params.items()}
			for future in as_completed(futures):
				result = future.result()
				# do someting with result