I experimented with multi-thread within the product configurator, and found it was possible, but it was a challenge. One thought on the locking and instead of writing your own multi-thred… you could create this sort of like MRP works, splitting up the records into 4 separate sets of parts, and then launching off 4 asynchronous processes… this would then “simply” process 1/4th of the data in each async task you release, but all in parallel.