Оператор блокировки C#

Использование data.table:

library(data.table)
idt <- as.data.table(iris)
idt[, .SD[11:(.N-10)], Species]

Та же логика в base R:

do.call(
  rbind, 
  lapply(
    split(iris, iris[["Species"]]), 
    function(x) x[11:(nrow(x)-10), ]
  )
)
6
задан Jason Punyon 18 February 2009 в 20:34
поделиться

5 ответов

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

17
ответ дан 8 December 2019 в 02:46
поделиться

Принятие это похоже на Win32 затем ответ, состоит в том, что это мог бы быть FIFO, но это не могло бы (это быть чем-то еще). Например, поток более высокого приоритета должен быть первым; но потоки могут получить временное повышение или заглядывать их приоритету в зависимости от того, что они делали недавно.

4
ответ дан 8 December 2019 в 02:46
поделиться

Ваш вопрос подразумевает поиск поведения FIFO? Затем Вы могли бы хотеть попробовать этот код Jakub Sloup:

Монитор/блокировка, которые помнят порядок в C# для моделирования FIFO

Как уже упомянуто в других ответах нет никакого гарантируемого порядка, ожидая, потоки получат блокировку.

5
ответ дан 8 December 2019 в 02:46
поделиться

Как ответ на Ваш вопрос, все потоки получают monitor.pulse, который будет затем биться за то, кто получает блокировку затем.

Я полагаю, что люди в wintellect записали блог относительно того, как это поведение могло привести к несправедливой ситуации, но нет никакой справедливости вообще в мониторе.

4
ответ дан 8 December 2019 в 02:46
поделиться

Ответ по определению, неопределенен.

3
ответ дан 8 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

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