As everyone has pointed out above, the encoder will re-engage the cutter at the same exact point regardless of how many times the program runs.
It is also possible to "pick up a thread" on a CNC lathe as well. Although I haven't tried this myself. There are lots of very interesting threads that are worth a read online if you want to learn more about how the encoder interfaces to the machine and the G32 synchronization (for Fanuc style controllers). For picking up the thread, it seems to be a combination of setting your Z-axis work offset and your tool wear offset - very similar to how you would pick up a thread on a manual lathe with the Z and/or compound, then dial X for cut.
Here is a simple threading routine I put together yesterday in Fusion360 with a custom post I wrote for my old Fanuc 0T-B lathe - worked like a charm =) (sorry to be off topic, but this might help explain a little bit about threading if you've only seen canned cycles)
My apologies for formatting, my post removes all unnecessary whitespace since machines didn't have gigabytes of memory in 1988.
Notes: Thread pitch is controlled with feed-per-rev in G99 mode, threading at 2000 RPM (servo drive with very high acceleration). This is an M8-1.0 thread.
Code:
(THREAD1)
M1
T0505
(KENNA TOP NOTCH THREADING)
G99
G99S2000M3
G0X1.Z0.1969
X1.Z0.1633
G1X0.2913F0.03937
G32Z-0.1988
X0.3405Z-0.2234
G0X1.Z-0.2234
X1.Z0.1611
G1X0.2834F0.03937
G32Z-0.1971
X0.3405Z-0.2256
G0X1.Z-0.2256
X1.Z0.1594
G1X0.2774F0.03937
G32Z-0.1958
X0.3405Z-0.2274
G0X1.Z-0.2274
X1.Z0.1579
G1X0.2723F0.03937
G32Z-0.1947
X0.3405Z-0.2288
G0X1.Z-0.2288
X1.Z0.1567
G1X0.2678F0.03937
G32Z-0.1937
X0.3405Z-0.2301
G0X1.Z-0.2301
X1.Z0.1567
G1X0.2678F0.03937
G32Z-0.1937
X0.3405Z-0.2301
G0X1.Z-0.2301
X1.Z0.1969
G28U0.