1) Non-blocking synchronization means that the risk of deadlocks is removed. No one thread will wait to get a lock held by another thread "forever".
2) More on non-blocking synchronization algorithms in java.