Каков поток диспетчера сигнала Java?

Используя следующее регулярное выражение: ^([^;]*;){21}(.*?);, при этом вам не нужно генерировать список разделенных дыр для поиска желаемой позиции, и как только вы достигнете ее, это будет зависеть от того, существует или нет.

Объяснение :

^ --> start of a line.

([^;]*;){Position - 1} --> notice that the symbol ; here is the delimiter, the expression will loop Pos - 1 times

(.*?) --> Non-Greedy .*

DEMO

Подробнее о регулярных выражениях на C #: документация [1111 ]

В приведенном ниже примере я реализовал два примера, чтобы показать вам, как это работает.

Метод сопоставления : документация (в основном он ищет только первое вхождение шаблона) RegexOptions.Singleline : Обрабатывает входные данные как сигнальную линию.

Код C #

Console.WriteLine("First Delimiter : ");
        int Position = 22;
        char delimiter = ',';
        string pattern = @"^([^" + delimiter + "]*" + delimiter + "){" + (Position - 1) + @"}(.*?)" + delimiter;
        Regex regex = new Regex(pattern, RegexOptions.Singleline);
        // First Example
        string Data = @"AAV,zzz,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22ABC,23,24,24";
        Match Re = regex.Match(Data);
        if (Re.Groups.Count > 0)
            Console.WriteLine("\tMatch found : " + Re.Groups[2]);


        // Second Example
        Console.WriteLine("Second Delimiter : ");
        Position = 8;
        delimiter = ';';
        pattern = @"^([^" + delimiter + "]*" + delimiter + "){" + (Position - 1) + @"}(.*?)" + delimiter;
        Data = @"61d2e3f6-bcb7-4cd1-a81e-4f8f497f0da2;0;192.100.0.102:4362;2014-02-14;283;0;354;23;0;;;""0x8D15A2913C934DE"";Thursday, 19-Jun-14 22:58:10 GMT;";
        regex = new Regex(pattern, RegexOptions.Singleline);
        Re = regex.Match(Data);
        if (Re.Groups.Count > 0)
            Console.WriteLine("\tMatch found : " + Re.Groups[2]);

Вывод:

Первый разделитель:

    Match found : 22ABC

Второй разделитель:

[ 113] blockquote>

9
задан zxcv 24 October 2008 в 13:17
поделиться

2 ответа

Сигналы ОС являются по сути однопоточными, таким образом, важно, чтобы они были все обработаны на том же потоке. Так, диспетчер является естественным способом достигнуть этого. Думайте о нем как единственный поток события GUI для AWT.

На тангенциальной ноте, если Вы - Linux и Ваша JVM, загружает собственную библиотеку, которая вставляет ее собственные обработчики сигналов, затем необходимо будет предварительно загрузить libjsig.so. Я узнал твердый путь, когда третье лицо сетевая библиотека периодически разъединило мои соединения с неверно направленным sigpipes.

4
ответ дан 3 November 2019 в 00:05
поделиться

Я нашел статью об этом на IBM developerWorks. Когда ОС повысит сигнал до JVM, поток диспетчера сигнала передаст сигнал соответствующему обработчику

Открытия на обработке сигнала Java и завершении Chris White, Разработчиком программного обеспечения, IBM

8
ответ дан 3 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: