Вопросы с тегом «multithreading»

Многопоточность - это способность компьютера или программы выполнять работу одновременно или асинхронно, используя несколько одновременных потоков выполнения (обычно называемых потоками).

7
Выберите между отправкой ExecutorService и выполнением ExecutorService
Как я должен выбрать между ExecutorService - х представить или выполнить , если возвращаемое значение не моя забота? Если я тестирую оба, я не вижу никаких различий между ними, кроме возвращаемого значения. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());

30
С какой наиболее частой проблемой параллелизма вы столкнулись в Java? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

1
В чем разница между Task.Run () и Task.Factory.StartNew ()
У меня есть метод: private static void Method() { Console.WriteLine("Method() started"); for (var i = 0; i < 20; i++) { Console.WriteLine("Method() Counter = " + i); Thread.Sleep(500); } Console.WriteLine("Method() finished"); } И я хочу запустить этот метод в новом задании. Я могу начать новую задачу, как это var task …

11
Java синхронизирует метод блокировки объекта или метода?
Если у меня есть 2 синхронизированных метода в одном и том же классе, но каждый имеет доступ к разным переменным, могут ли 2 потока получить доступ к этим двум методам одновременно? Происходит ли блокировка объекта или он становится таким же специфичным, как переменные внутри синхронизированного метода? Пример: class X { …


8
Рекурсивная блокировка (мьютекс) против нерекурсивной блокировки (мьютекс)
POSIX позволяет мьютексам быть рекурсивными. Это означает, что один и тот же поток может заблокировать один и тот же мьютекс дважды и не будет блокироваться. Конечно, он также должен разблокировать его дважды, иначе никакой другой поток не сможет получить мьютекс. Не все системы, поддерживающие потоки pthread, также поддерживают рекурсивные мьютексы, …

12
Как CountDownLatch используется в многопоточности Java?
Может ли кто-нибудь помочь мне понять, что такое Java CountDownLatchи когда его использовать? У меня нет четкого представления о том, как работает эта программа. Как я понимаю, все три потока запускаются одновременно, и каждый поток вызовет CountDownLatch через 3000 мс. Так что обратный отсчет будет уменьшаться один за другим. После …

10
Синхронизация против блокировки
java.util.concurrentAPI предоставляет класс с именем as Lock, который в основном сериализует элемент управления для доступа к критическому ресурсу. Это дает такой метод, как park()и unpark(). Мы можем делать подобные вещи, если мы можем использовать synchronizedключевое слово wait()и notify() notifyAll()методы и. Мне интересно, какой из них лучше на практике и почему?

5
Как я могу преобразовать этот код foreach в Parallel.ForEach?
Я немного запутался Parallel.ForEach. Что это такое Parallel.ForEachи чем оно конкретно занимается? Пожалуйста, не ссылайтесь ни на одну ссылку MSDN. Вот простой пример: string[] lines = File.ReadAllLines(txtProxyListPath.Text); List<string> list_lines = new List<string>(lines); foreach (string line in list_lines) { //My Stuff } Как я могу переписать этот пример с Parallel.ForEach?

6
Почему создание темы считается дорогой?
В руководствах по Java написано, что создание потока стоит дорого. Но почему именно это дорого? Что именно происходит, когда создается поток Java, что делает его создание дорогим? Я принимаю это утверждение как правду, но мне просто интересна механика создания потоков в JVM. Поток жизненного цикла потока. Создание и удаление потоков …

8
Как синхронизированные статические методы работают в Java и можно ли использовать их для загрузки объектов Hibernate?
Если у меня есть класс util со статическими методами, которые будут вызывать функции Hibernate для выполнения базового доступа к данным. Мне интересно, если создание метода synchronizedявляется правильным подходом для обеспечения безопасности потока. Я хочу это, чтобы предотвратить доступ информации к тому же экземпляру БД. Однако теперь я уверен, что следующий …

1
Автоматизация шаблона кода InvokeRequired
Я стал мучительно осознавать, как часто нужно писать следующий шаблон кода в коде GUI, управляемого событиями, где private void DoGUISwitch() { // cruisin for a bruisin' through exception city object1.Visible = true; object2.Visible = false; } будет выглядеть так: private void DoGUISwitch() { if (object1.InvokeRequired) { object1.Invoke(new MethodInvoker(() => { …

8
Как найти идентификатор потока в Python
У меня есть многопоточная программа Python и служебная функция writeLog(message), которая записывает метку времени, за которой следует сообщение. К сожалению, полученный файл журнала не указывает, какой поток генерирует какое сообщение. Я хотел бы writeLog()иметь возможность добавить что-то к сообщению, чтобы определить, какой поток вызывает его. Очевидно, я мог бы просто …

10
Как ждать окончания потока с .NET?
Я никогда раньше не использовал потоки в C #, где мне нужно иметь два потока, а также основной поток пользовательского интерфейса. В основном у меня есть следующее. public void StartTheActions() { //Starting thread 1.... Thread t1 = new Thread(new ThreadStart(action1)); t1.Start(); // Now, I want for the main thread (which …
178 c#  multithreading 

13
В чем разница между параллелизмом, параллелизмом и асинхронными методами?
Параллельность - это выполнение двух задач параллельно в разных потоках. Однако асинхронные методы выполняются параллельно, но в одном потоке. Как это достигается? Кроме того, как насчет параллелизма? Каковы различия между этими 3 понятиями?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.