Articles of multithreading

Tratamento de exceções de tarefas Java ExecutorService

Estou tentando usar a class ThreadPoolExecutor do Java para executar um grande número de tarefas pesadas com um número fixo de threads. Cada uma das tarefas tem muitos lugares durante os quais pode falhar devido a exceções. Eu subclass ThreadPoolExecutor e substituí o método afterExecute , que deveria fornecer exceções não detectadas durante a execução […]

Aguardar e Notificar Java: IllegalMonitorStateException

Eu não entendo completamente como wait e notify (de Object ) funciona, e como resultado sou forçado a reduzir minhas tentativas na seção de código a seguir. Main.java: import java.util.ArrayList; class Main { public static Main main = null; public static int numRunners = 4; public static ArrayList runners = null; public static void main(String[] […]

Como passar parâmetros para o método ThreadStart no Thread?

Como passar parâmetros para o método Thread.ThreadStart() em C #? Suponha que eu tenha chamado o método ‘download’ public void download(string filename) { // download code } Agora eu criei um thread no método principal: Thread thread = new Thread(new ThreadStart(download(filename)); tipo de método de erro esperado. Como posso passar parâmetros para ThreadStart com método […]

Matando o encadeamento após algum limite de tempo especificado em Java

Existe uma maneira de matar um thread filho depois de algum limite de tempo especificado em Java? Edit: Também este segmento específico pode ser bloqueado em seu pior caso (Thread é usado para esperar por uma modificação de arquivo e bloqueia até que este evento ocorra), então eu não tenho certeza que interromper () será […]

Quais são as opções de link corretas para usar o std :: thread no GCC no linux?

Oi eu estou tentando usar std::thread com G + +. Aqui está meu código de teste #include #include int main(int, char **){ std::thread tt([](){ std::cout<<"Thread!"<<std::endl; }); tt.join(); } Ele compila, mas quando tento executá-lo, o resultado é: terminate called after throwing an instance of ‘std::system_error’ what(): Operation not permitted Aborted Minha versão do compilador: $ […]

Executar código no thread da interface do usuário no WinRT

Como posso executar o código no thread de interface do usuário no WinRT (Windows 8 Metro)? O método Invoke não existe.

Compare usando Thread.Sleep e Timer para execução atrasada

Eu tenho um método que deve ser atrasado em execução por um período de tempo especificado. Devo usar Thread thread = new Thread(() => { Thread.Sleep(millisecond); action(); }); thread.IsBackground = true; thread.Start(); Ou Timer timer = new Timer(o => action(), null, millisecond, -1); Eu tinha lido alguns artigos sobre o uso de Thread.Sleep é um […]

Como posso implementar o contador ABA com o c ++ 11 CAS?

Estou implementando uma fila livre de bloqueio com base nesse algoritmo , que usa um contador para resolver o problema do ABA. Mas eu não sei como implementar esse contador com o c ++ 11 CAS. Por exemplo, do algoritmo: E9: if CAS(&tail.ptr->next, next, ) É uma operação atômica, significando que se tail.ptr->next for igual […]

Por que o JavaScript não suporta multithreading?

É uma decisão deliberada de projeto ou um problema com nossos navegadores atuais que serão corrigidos nas próximas versões?

O que acontece com um segmento desconectado quando o main () sai?

Suponha que eu esteja iniciando um std::thread e, em seguida, detach() , então o thread continua executando mesmo que o std::thread que o representou, saia do escopo. Suponha ainda que o programa não tenha um protocolo confiável para unir o encadeamento desanexado 1 , de modo que o encadeamento desanexado ainda seja executado quando o […]