Запитання з тегом «multithreading»

Багатопотоковість - це здатність комп'ютера або програми виконувати роботу одночасно або асинхронно, використовуючи кілька одночасних потоків виконання (зазвичай їх називають потоками).

2
Різниця між спостережуваним майбутнім, майбутнім і спостережуваним RxJava
Я хотів би знати різницю між CompletableFuture, Futureі Observable RxJava. Що я знаю, це все асинхронно, але Future.get() блокує нитку CompletableFuture дає методи зворотного виклику RxJava Observable--- подібний до CompletableFutureінших переваг (не впевнений) Наприклад: якщо клієнту потрібно здійснити декілька сервісних дзвінків і коли ми використовуємо Futures(Java) Future.get()буде виконуватися послідовно ... …

30
Яке найчастіше питання про сумісність, з яким ви стикалися на Java? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

11
Блокування синхронізованого методу Java на об'єкті чи методі?
Якщо у мене в одному класі є 2 синхронізованих методу, але кожен, хто має доступ до різних змінних, може 2 потоку отримати доступ до цих двох методів одночасно? Чи відбувається блокування на об'єкті, чи він стає таким же специфічним, як змінні всередині синхронізованого методу? Приклад: class X { private int …

7
Яка різниця між 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 …


12
Як CountDownLatch використовується в багатопотоковій програмі Java?
Чи може хтось допомогти мені зрозуміти, що таке Java CountDownLatchі коли її використовувати? Я не дуже чітко уявляю, як працює ця програма. Як я розумію, всі три теми починаються одразу, і кожна нитка зателефонує CountDownLatch через 3000 мс. Тож підрахунок буде зменшенням один за одним. Після того, як засувка стане …

7
Рекурсивний блокування (Mutex) проти нерекурсивного блокування (Mutex)
POSIX дозволяє мютексам бути рекурсивними. Це означає, що однаковий потік може двічі заблокувати один і той самий файловий файл і не матиме тупикової ситуації. Звичайно, його також потрібно розблокувати двічі, інакше жодна інша нитка не зможе отримати мутекс. Не всі системи, що підтримують pthreads, також підтримують рекурсивні мютекси, але якщо …

10
Синхронізація проти блокування
java.util.concurrentAPI надає клас, який називається як 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. Життєвий цикл нитки накладні. Створення ниток та просвіта не безкоштовні. Фактичні накладні …

9
Автоматизація шаблону коду 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(() => { DoGUISwitch(); })); } else …

8
Як синхронізовані статичні методи працюють на Java і чи можу я використовувати її для завантаження сплячих об'єктів?
Якщо у мене є клас утиліти зі статичними методами, які будуть викликати сплячі функції для отримання базового доступу до даних. Мені цікаво, чи виготовлення методу synchronized- це правильний підхід для забезпечення безпеки потоку. Я хочу, щоб це запобігало доступу інформації до того самого екземпляра БД. Однак зараз я впевнений, що …

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 is calling …
178 c#  multithreading 

5
Чому у віртуальній машині Java немає GIL? Чому Python потрібен такий поганий?
Я сподіваюся, що хтось може дати деяке розуміння того, що принципово відрізняється від віртуальної машини Java, що дозволяє їй добре реалізовувати теми без необхідності блокування глобального інтерпретатора (GIL), тоді як Python потребує такого зла.
177 java  python  multithreading  jvm  gil 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.