Сначала, успокойся, всё получится!
Там нет ничего сложного:
citforum.ru/programming/unix/threads
citforum.ru/programming/unix/threads_2
1) Поток отличается от процесса тем, что он запускается в том же адресном пространстве, что и программа (основной поток).
Отсюда вытекает:
а) При падении программы - падают все её потоки.
б) Потокам "доступны" все данные программы.
Обычно потоки создаются для выполнения некоторой функции, и по её завершении, поток объединяется с основным потоком. Соответственно,
2) входные данные подаются при старте функции через параметры, выходные - при её возврате, через возвращаемое значение (или через параметры по указателю). А также можно использовать глобальные переменные.