Yes, each thread has its own Program Counter (PC) value in a multithreading program. Each thread can execute independently and maintain its own PC value, which allows it to keep track of its execution state separately from other threads.