«concurrency» etiketlenmiş sorular

Bilgisayar biliminde eşzamanlılık, çakışan zaman periyotlarında çoklu hesaplamaların yapılabildiği sistemlerin bir özelliğidir. Hesaplamalar, aynı yongadaki birden çok çekirdek üzerinde, aynı işlemci üzerinde önceden zaman paylaşımlı iş parçacıkları üzerinde veya fiziksel olarak ayrılmış işlemciler üzerinde gerçekleştirilebilir.


9
Node.js veya Erlang
Eşzamanlılık düzeyi söz konusu olduğunda bu araçları gerçekten seviyorum. Erlang / OTP çok daha kararlı bir çözüm gibi görünüyor, ancak çok daha fazla öğrenme ve işlevsel dil paradigmasına dalmayı gerektiriyor. Ve çok çekirdekli işlemciler söz konusu olduğunda Erlang / OTP bunu çok daha iyi hale getiriyor gibi görünüyor (yanılıyorsam düzeltin). …

13
Kesinlikle çıkmaza girecek bir program yazın [kapalı]
Kapalı . Bu soruya daha çok odaklanılması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Soruyu yalnızca bu gönderiyi düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 5 yıl önce kapalı . Bu soruyu geliştirin Geçenlerde bir röportajda sorulan bu soruları aldım. Serpiştirme yanlış giderse kilitlenme …

8
Birkaç Vadeli İşlem İçin Nasıl Beklenir?
Birkaç geleceklerini ve beklemek gerek olduğunu varsayalım ya bunlardan herhangi başarısız veya hepsini başarılı. Örneğin: Let 3 futures vardır: f1, f2, f3. Eğer f1başarılı ve f2başarısız ben beklemeyin f3(ve dönüş yetmezliği müşteriye). Eğer devam f2ederken başarısız olursa f1ve f3hala çalışıyorsa, onları beklemiyorum (ve hata veriyorum ) Başarılı f1olur ve sonra …

2
Runtime.Gosched tam olarak ne yapıyor?
In Tur Go'nun web sitesinin halindeyken 1.5 yayınlamadan önce bir sürümü , kodu parçasıdır var ki böyle görünüyor. package main import ( "fmt" "runtime" ) func say(s string) { for i := 0; i < 5; i++ { runtime.Gosched() fmt.Println(s) } } func main() { go say("world") say("hello") } Çıktı …
86 concurrency  go 

7
Java: Belirli bir kuyruk boyutundan sonra gönderimi engelleyen ExecutorService
Tek bir iş parçacığının paralel olarak gerçekleştirilebilen G / Ç yoğun görevler ürettiği bir çözümü kodlamaya çalışıyorum. Her görevin önemli bellek içi verileri vardır. Bu yüzden, bir anda bekleyen görevlerin sayısını sınırlayabilmek istiyorum. ThreadPoolExecutor'ı şu şekilde oluşturursam: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(maxQueue)); Ardından, sıra dolduğunda …

6
Take () üzerinde bloke eden bir BlockingQueue nasıl kesilir?
Nesneleri a'dan alan BlockingQueueve onları take()sürekli bir döngüde çağırarak işleyen bir sınıfım var . Bir noktada, kuyruğa başka nesnelerin eklenmeyeceğini biliyorum. take()Engellemeyi durdurması için yöntemi nasıl keserim? İşte nesneleri işleyen sınıf: public class MyObjHandler implements Runnable { private final BlockingQueue<MyObj> queue; public class MyObjHandler(BlockingQueue queue) { this.queue = queue; } …

5
Python çoklu işlemeyi kullanarak utanç verici derecede paralel sorunları çözme
Utanç verici derecede paralel sorunların üstesinden gelmek için çoklu işlem nasıl kullanılır ? Utanç verici derecede paralel sorunlar tipik olarak üç temel bölümden oluşur: Giriş verilerini okuyun (bir dosyadan, veritabanından, tcp bağlantısından vb.). Her hesaplamanın diğer hesaplamalardan bağımsız olduğu giriş verilerinde hesaplamalar çalıştırın . Hesaplamaların sonuçlarını yazın (bir dosyaya, veritabanına, …

1
Java'da kullanılan bellek çitleri ne için kullanılır?
Sürüm 9'da Java SE'ye eklenen yeni bir sınıfın SubmissionPublisher( Java SE 10'daki kaynak kodu, OpenJDK | docs ) nasıl uygulandığını anlamaya çalışırken , daha VarHandleönce bilmediğim birkaç API çağrısına rastladım : fullFence, acquireFence, releaseFence, loadLoadFenceVe storeStoreFence. Biraz araştırma yaptıktan sonra, özellikle bellek bariyerleri / çitler kavramı hakkında (daha önce duymuştum, …

2
Atanan görevlerinden biri herhangi bir nedenle başarısız olduğunda Java stop yürütücü hizmeti
Birkaç görevi aynı anda ve 1 dakika arayla 1 dakika boyunca çalıştıracak bir tür hizmete ihtiyacım var. Görevlerden biri başarısız olursa, hizmeti ve bir şeylerin yanlış gittiğini gösteren bir tür gösterge ile koşan her görevi durdurmak istiyorum, aksi takdirde bir dakika sonra her şey iyi gittiğinde servis her şeyin iyi …

2
Kotlin yardımcı programları “daha ​​önce olur” garantileri veriyor mu?
Kotlin yardımcı programları "daha önce olur" garantisi veriyor mu? Örneğin, mutableVarbu durumda başka bir konuya yazma ve daha sonra okuma (potansiyel olarak) arasında "daha önce olur" garantisi var mı : suspend fun doSomething() { var mutableVar = 0 withContext(Dispatchers.IO) { mutableVar = 1 } System.out.println("value: $mutableVar") } Düzenle: Belki ek …

1
Haskell'de paralel "herhangi bir" veya "tümü"
Şimdi birkaç kez karşılaştığım bir desen, üzerinde bir test eşleştirerek ve öğelerin herhangi birinin veya tamamının geçip geçmediğini görerek bir değer listesinin kontrol edilmesi gereken modeldir. Tipik çözüm sadece kullanışlı dahili ins kullanmaktır allve any. Sorun, bunların seri olarak değerlendirilmesi. Birçok durumda, herhangi bir iş parçacığı için bir "Yanlış" veya …

2
Programcı düzeyinde C ++ std :: atomic ile neler garanti edilir?
Hakkında birkaç makale, görüşme ve yığın akışı ile ilgili soruları dinledim ve okudum ve std::atomicbunu iyi anladığımdan emin olmak istiyorum. Önbellek satırıyla hala kafam karıştığından, MESI (veya türetilmiş) önbellek tutarlılık protokollerinde, mağaza arabelleklerinde, geçersiz sıralarda vb. Olası gecikmeler nedeniyle görünürlük yazıyor. X86'nın daha güçlü bir bellek modeli olduğunu okudum ve …

1
Diğer iş parçacığında aynı eşzamanlı_vektör üzerinden yineleme yaparken eşzamanlılık :: concurrent_vector :: push_back öğesini çağırmak eşzamanlı olarak güvenli midir?
push_back , başlar , sonu eşzamanlı kasa olarak tarif edilmektedir https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back Ancak, aşağıdaki kod öne sürülüyor. Muhtemelen eleman eklendiğinden, ancak henüz başlatılmadığından. struct MyData { explicit MyData() { memset(arr, 0xA5, sizeof arr); } std::uint8_t arr[1024]; }; struct MyVec { concurrency::concurrent_vector<MyData> v; }; auto vector_pushback(MyVec &vec) -> void { vec.v.push_back(MyData{}); } …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.