คำถามติดแท็ก concurrency

ในวิทยาการคอมพิวเตอร์การทำงานพร้อมกันเป็นคุณสมบัติของระบบที่สามารถทำการคำนวณหลายอย่างในช่วงเวลาที่ทับซ้อนกัน การคำนวณอาจดำเนินการบนหลายคอร์ในชิปตัวเดียวกันเธรดที่แบ่งใช้เวลาล่วงหน้าบนโปรเซสเซอร์เดียวกันหรือดำเนินการกับตัวประมวลผลที่แยกทางกายภาพ





15
อะไรคือความแตกต่างระหว่าง Thread start () และ Runnable run ()
สมมติว่าเรามี Runnables สองรายการนี้: class R1 implements Runnable { public void run() { … } … } class R2 implements Runnable { public void run() { … } … } แล้วความแตกต่างระหว่างสิ่งนี้คืออะไร: public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); } และนี่: public …

7
Haskell ตอบสนองต่อ Node.js คืออะไร?
ฉันเชื่อว่าชุมชน Erlang ไม่ได้มีความริษยาของ Node.js เนื่องจากเป็นแบบไม่บล็อก I / O และมีวิธีการปรับใช้งานได้อย่างง่ายดายไปยังตัวประมวลผลมากกว่าหนึ่งตัว รายละเอียดเพิ่มเติมได้ที่http://journal.dedasys.com/2010/04/29/erlang-vs-node-jsและNode.js หรือ Erlang แล้ว Haskell ล่ะ Haskell สามารถให้ประโยชน์บางอย่างของ Node.js ได้หรือไม่นั่นคือโซลูชันที่สะอาดเพื่อหลีกเลี่ยงการบล็อก I / O โดยไม่ต้องขอความช่วยเหลือจากการเขียนโปรแกรมแบบหลายเธรด? มีหลายสิ่งที่น่าสนใจสำหรับ Node.js เหตุการณ์: ไม่มีการจัดการเธรดโปรแกรมเมอร์ให้การเรียกกลับเท่านั้น (ในกรอบงาน Snap) รับประกันการโทรกลับเพื่อให้ทำงานในหัวข้อเดียว: ไม่มีสภาพการแข่งขัน API ที่ใช้งานง่ายและเป็นมิตรกับ UNIX โบนัส: รองรับ HTTP ที่ยอดเยี่ยม นอกจากนี้ยังมี DNS I / O ทุกตัวเป็นค่าเริ่มต้นแบบอะซิงโครนัส ทำให้ง่ายขึ้นในการหลีกเลี่ยงการล็อค อย่างไรก็ตามการประมวลผล CPU มากเกินไปในการติดต่อกลับจะส่งผลต่อการเชื่อมต่ออื่น ๆ (ในกรณีนี้งานควรแบ่งออกเป็นงานย่อยที่มีขนาดเล็กลงและกำหนดเวลาใหม่) …

5
เหตุใดโปรแกรม Java นี้จึงยุติลงแม้ว่าจะไม่ได้เป็นอย่างนั้นก็ตาม
การปฏิบัติที่ละเอียดอ่อนในห้องปฏิบัติการของฉันในวันนี้ผิดไปอย่างสิ้นเชิง แอคชูเอเตอร์ในกล้องจุลทรรศน์อิเล็กตรอนวิ่งข้ามขอบเขตของมันและหลังจากเหตุการณ์หลายอย่างฉันก็สูญเสียอุปกรณ์มูลค่า 12 ล้านเหรียญ ฉันแคบลงกว่า 40K บรรทัดในโมดูลที่ผิดพลาดดังนี้: import java.util.*; class A { static Point currentPos = new Point(1,2); static class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; } } public static void main(String[] args) { new Thread() { void f(Point …

5
รูปแบบการทำลายของ LMAX ทำงานอย่างไร
ฉันพยายามที่จะเข้าใจรูปแบบ disruptor ฉันดูวิดีโอ InfoQ และพยายามอ่านบทความของพวกเขา ฉันเข้าใจว่ามีบัฟเฟอร์วงแหวนที่เกี่ยวข้องซึ่งเริ่มต้นเป็นอาร์เรย์ขนาดใหญ่มากเพื่อใช้ประโยชน์จากตำแหน่งแคชการกำจัดการจัดสรรหน่วยความจำใหม่ ดูเหมือนจะมีจำนวนเต็มหนึ่งอะตอมหรือมากกว่านั้นซึ่งติดตามตำแหน่ง แต่ละเหตุการณ์ดูเหมือนว่าจะได้รับ id ที่ไม่ซ้ำกันและมันอยู่ในตำแหน่งของวงแหวนโดยการหาโมดูลัสของมันตามขนาดของแหวน ฯลฯ น่าเสียดายที่ฉันไม่เข้าใจวิธีการทำงานของสัญชาตญาณ ฉันได้ทำการซื้อขายแอพพลิเคชั่นมากมายและศึกษาโมเดลนักแสดงดูที่ SEDA และอื่น ๆ ในการนำเสนอของพวกเขาพวกเขากล่าวว่ารูปแบบนี้โดยทั่วไปแล้วเราเตอร์ทำงานอย่างไร อย่างไรก็ตามฉันไม่พบคำอธิบายที่ดีว่าเราเตอร์ทำงานอย่างไร มีคำแนะนำที่ดีสำหรับคำอธิบายที่ดีกว่านี้หรือไม่?

30
ปัญหาการเห็นพ้องบ่อยที่สุดที่คุณพบใน Java คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา นี่เป็นแบบสำรวจความคิดเห็นเกี่ยวกับปัญหาการเกิดพร้อมกันทั่วไปใน Java ตัวอย่างอาจเป็น deadlock แบบคลาสสิกหรือสภาพการแข่งขันหรือบางที EDT เธรดเธรดใน Swing ฉันสนใจทั้งปัญหาที่เป็นไปได้กว้าง แต่รวมถึงประเด็นที่พบบ่อยที่สุดด้วย ดังนั้นโปรดทิ้งคำตอบเฉพาะไว้สำหรับข้อบกพร่องของการทำงานพร้อมกันของ Java ต่อความคิดเห็นและโหวตถ้าคุณเห็นคำตอบที่คุณพบ

10
การประสานเทียบกับล็อค
java.util.concurrentAPI จัดให้มีคลาสที่เรียกว่าLockซึ่งโดยทั่วไปจะเรียงลำดับการควบคุมเพื่อเข้าถึงทรัพยากรที่สำคัญ มันทำให้วิธีการดังกล่าวเป็นและ park()unpark() เราสามารถทำสิ่งที่คล้ายกันถ้าเราสามารถใช้synchronizedคำหลักและการใช้wait()และnotify() notifyAll()วิธีการ ฉันสงสัยว่าหนึ่งในสิ่งเหล่านี้ดีกว่าในการปฏิบัติและทำไม?

6
เหตุใดการสร้างเธรดจึงมีราคาแพง
บทเรียน Java กล่าวว่าการสร้างกระทู้มีราคาแพง แต่ทำไมมันแพง จะเกิดอะไรขึ้นเมื่อสร้าง Java Thread ขึ้นมาซึ่งทำให้การสร้างนั้นแพง ฉันรับปากว่าเป็นความจริง แต่ฉันแค่สนใจกลไกการสร้างเธรดใน JVM เธรดค่าใช้จ่ายตลอดวงจร การสร้างเธรดและการฉีกขาดไม่ฟรี ค่าใช้จ่ายจริงจะแตกต่างกันไปตามแต่ละแพลตฟอร์ม แต่การสร้างเธรดต้องใช้เวลาแนะนำเวลาแฝงในการประมวลผลคำขอและต้องการกิจกรรมการประมวลผลบางอย่างโดย JVM และ OS หากคำขอมีบ่อยและมีน้ำหนักเบาเช่นเดียวกับในแอพพลิเคชันเซิร์ฟเวอร์ส่วนใหญ่การสร้างเธรดใหม่สำหรับแต่ละคำร้องขอสามารถใช้ทรัพยากรการประมวลผลที่สำคัญ จากJava Concurrency ในทางปฏิบัติ โดย Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, David Holmes, Doug Lea พิมพ์ ISBN-10: 0-321-34960-1

8
วิธีสแตติกแบบซิงโครนัสทำงานได้อย่างไรใน Java และฉันสามารถใช้สำหรับการโหลดรายการไฮเบอร์เนตได้อย่างไร
ถ้าฉันมีคลาส util ด้วยวิธีการคงที่ที่จะเรียกใช้ฟังก์ชันไฮเบอร์เนตเพื่อให้เข้าถึงข้อมูลขั้นพื้นฐาน ฉันสงสัยว่าการทำวิธีsynchronizedนี้เป็นวิธีการที่ถูกต้องหรือไม่ ฉันต้องการสิ่งนี้เพื่อป้องกันการเข้าถึงข้อมูลไปยังอินสแตนซ์ฐานข้อมูลเดียวกัน อย่างไรก็ตามตอนนี้ฉันแน่ใจว่ารหัสต่อไปนี้จะป้องกันไม่ให้getObjectByIdถูกเรียกสำหรับคลาสทั้งหมดเมื่อถูกเรียกโดยคลาสที่เฉพาะเจาะจง public class Utils { public static synchronized Object getObjectById (Class objclass, Long id) { // call hibernate class Session session = new Configuration().configure().buildSessionFactory().openSession(); Object obj = session.load(objclass, id); session.close(); return obj; } // other static methods }

13
ความแตกต่างระหว่างวิธีการเกิดพร้อมกันขนานและวิธีการไม่ตรงกันคืออะไร?
การทำงานพร้อมกันคือการทำงานสองอย่างพร้อมกันบนเธรดแยกกัน อย่างไรก็ตามวิธีการแบบอะซิงโครนัสทำงานแบบขนาน แต่อยู่บน 1 เธรดเดียวกัน สิ่งนี้สำเร็จได้อย่างไร นอกจากนี้สิ่งที่เกี่ยวกับความเท่าเทียมกัน? อะไรคือความแตกต่างระหว่างแนวคิดทั้งสามนี้


1
สถานะของการเขียนโปรแกรมแบบมัลติคอร์ใน Haskell คืออะไร?
สถานะของการเขียนโปรแกรมแบบมัลติคอร์ใน Haskell คืออะไร? โครงการเครื่องมือและห้องสมุดใดบ้างที่มีให้ในตอนนี้ มีรายงานประสบการณ์อะไรบ้าง?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.