From Advanced Bash-Scripting Guide:

$$ is the process ID (PID) of the script itself.

$BASHPID is the process ID of the current instance of Bash. This is not the same as the $$ variable, but it often gives the same result.