Wolfram Research has had the same documentation for this function for the last 8 years at least:
Thread[f[args]]
\"threads\" f over any lists t
Thread is a bit like a generalization zip
from other functional languages.
For simple cases, where all the elements of args from your example are lists,
Thread[f[args]]
is equivalent to
f @@@ Transpose[{args}]
as shown in the first couple examples in the documentation. The major wrinkle is when you have args that are not lists, in which case they're effectively curried out; for example,
Thread[g[{a, b}, c, {d, e}, f]]
is equivalent to
g[#1, c, #2, f]& @@@ Transpose[{{a, b}, {d, e}}]
I usually find myself using Thread to construct lists of rules or lists of equations.
It works similarly to Python's zip() function, but in a slightly more general fashion. For example:
In[1] := Thread[{{1, 2, 3}, {4, 5, 6}}] (* f == List *)
Out[1] = {{1, 4}, {2, 5}, {3, 6}}
In[2] := Thread[f[{1, 2, 3}, {4, 5, 6}]]
Out[2] = {f[1, 4], f[2, 5], f[3, 6]}
In[3] := Thread[f[a+b+c, d+e+f], Plus]
Out[3] = f[a, d] + f[b, e] + f[c, f]