«Место не может быть нулевым, как вы можете видеть». Значение по умолчанию для JoinColumn для параметров «nullable» равно true, поэтому оно может быть нулевым.
Обычно их можно использовать взаимозаменяемо, но вам необходимо учитывать различия. Например, multiprocessing.Event поддерживается именованным семафором, который чувствителен к платформе в приложении.
Multiprocessing.Lock поддерживается Multiprocessing.SemLock - поэтому ему нужны именованные семафоры. По сути, вы можете использовать их взаимозаменяемо, но использование многопроцессорных блокировок вводит некоторые требования платформы к приложению (а именно, оно не работает на BSD :))
Я так не думаю. Блокировки потоков находятся в одном и том же процессе, в то время как блокировка многопроцессорности, вероятно, будет в общей памяти.
В прошлый раз, когда я проверял, многопроцессорность не позволяет вам совместно использовать блокировку в очереди, которая является блокировкой потоков.
Да, вы можете использовать блокировки из многопроцессорного модуля как обычно в вашем однопроцессном приложении, но если вы используя многопроцессорность, вы должны использовать его блокировки.