Если первый поток не закончил инициализировать SomeClass, второй поток заблокируется.
Это детализировано в разделе Java Language Specification in 12.4.2 .
Eclipse кажется довольно популярным для разработки ядра Linux:
Я занимался разработкой для встроенных Linux. Включая разработку модуля ядра и импортировали весь исходный код ядра Linux в Eclipse как отдельный проект. Я строил само ядро за пределами Eclipse (пока), но у меня нет причин, по которым я не могу настроить среду сборки в Eclipse для сборки ядра. Для моих проектов, пока я настраиваю свойства PATH так, чтобы они указывали на соответствующие каталоги включения исходных текстов Linux, кажется, что это неплохо для завершения имени для полей структуры и т.д.
Я не могу комментировать, если это подбирает правильные определения и не выделяет соответствующие разделы серым цветом, так как я не особо обращал внимание на файлы внутри самого ядра.
Я думаю, это сработает (выполняется каждый шаг для различных проектов):
[1] Измените сценарии сборки ядра, чтобы оставить файлы .d. По умолчанию они удалены. [2] Зарегистрируйте процесс сборки в файл. [3] Напишите сценарий для анализа журнала сборки. [3.1] Из журнала сборки вы знаете все файлы .c. [3.2] Из файла .c вы знаете, какой файл соответствует .d. [3.3] Просмотрите файлы .d, чтобы найти все включенные файлы .h. [3.4] Сформировать полный список файлов .c и .h. [4] Теперь создайте новый каталог и используйте «ln -s» или «ln» для выбора интересующих файлов.
Теперь создайте проект Netbeans для существующего исходного кода в [4]. Настройте помощь по коду для использования файла make-log. Тебе следует увидеть точно такой же эффективный исходный код, как при его сборке в [2].
Некоторые пояснения к вышеперечисленным шагам:
В [2] выполните реальную сборку, чтобы файл журнала содержал точные файлы и интересующие флаги. Позже netbeans сможет использовать точные флаги для синтаксического анализа.
В [4] выберите только те файлы, которые вы хотите просмотреть. Включение всего дерева ядра в netbeans будет непрактичным.
Есть уловка для синтаксического анализа файлов .d: многие из зависимых элементов не являются реальными путями к файлу .h, они представляют собой измененную запись для части разделов конфигурации linux в файле автоматической конфигурации. Возможно, вам придется отменить модификацию, чтобы выяснить, какой файл является настоящим заголовочным файлом.
На самом деле на сайте netbeans есть тема.Это URL обсуждения: http://forums.netbeans.org/ntopic3075.html . И есть вики-страница, на которую ссылается обсуждение: wiki.netbeans.org/CNDLinuxKernel. Обычно он просит вас добавить к make префикс CFLAGS = "- g3 -gdwarf-2".