Threads on linux в настоящее время пытается оставаться posix complient. Только вызывающий поток реплицируется, а не другие потоки (обратите внимание, что, например, на солярии вы можете выбрать, что делает вилка, в зависимости от того, к какой библиотеке вы подключаетесь)
Из http://www.opengroup.org /onlinepubs/000095399/functions/fork.html:
Процесс должен быть создан одним потоком. Если многопоточный процесс вызывает fork (), новый процесс должен содержать реплика вызывающего потока и всего его адресного пространства, возможно, включая состояния мьютексов и других ресурсов. Следовательно, чтобы избежать ошибок, дочерний процесс может выполнять только операции с асинхронным сигналом до тех пор, пока не будет вызвана одна из функций exec. Обработчики вил могут быть установлены с помощью функции pthread_atfork (), чтобы поддерживать инварианты приложения для вызовов fork ().
blockquote>
Вот другая проблема, которая взяла меня немного времени: параметрический усилитель пути к классу командной строки не ведет себя, как Вы ожидали бы. Я нахожусь на MacOS, называя CLI непосредственно, и я включаю две банки в вызов.
, Например, оба из них путали инструмент о названии основного класса:
Этот, потому что звездочка заставляла это анализировать args неправильно:
java -cp path/to/jars/* com.mypackage.Main
И этот, потому что - я не уверен почему:
java -cp "*.jar" com.mypackage.Main
Это работало:
java -cp "path/to/jars/*" com.mypackage.Main
Список этих двух банок явно также работал:
java -cp path/to/jars/jar1.jar:path/to/jars/jar2.jar com.mypackage.Main